Merge branch 'wip/chergert/garray-bail' into 'master'

garray: add overflow checks before expanding array

See merge request GNOME/glib!195
This commit is contained in:
Philip Withnall 2018-08-27 10:09:58 +00:00
commit 3cafd7f266

View File

@ -803,7 +803,13 @@ static void
g_array_maybe_expand (GRealArray *array,
guint len)
{
guint want_alloc = g_array_elt_len (array, array->len + len +
guint want_alloc;
/* Detect potential overflow */
if G_UNLIKELY ((G_MAXUINT - array->len) < len)
g_error ("adding %u to array would overflow", len);
want_alloc = g_array_elt_len (array, array->len + len +
array->zero_terminated);
if (want_alloc > array->alloc)
@ -1162,6 +1168,10 @@ static void
g_ptr_array_maybe_expand (GRealPtrArray *array,
gint len)
{
/* Detect potential overflow */
if G_UNLIKELY ((G_MAXUINT - array->len) < len)
g_error ("adding %u to array would overflow", len);
if ((array->len + len) > array->alloc)
{
guint old_alloc = array->alloc;