mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-08-11 03:34:05 +02:00
array: Avoid use of memcpy(dest, NULL, 0)
glibc declares memcpy() with the first two arguments (the pointers) annotated as non-null via an attribute, which results in the undefined behaviour sanitizer considering it to be UB to pass a null pointer in the second argument, even if we are copying 0 bytes (and hence not actually dereferencing the pointer). This shows up in array-test when run with the undefined behaviour sanitizer. Signed-off-by: Simon McVittie <smcv@collabora.com>
This commit is contained in:
@@ -1146,7 +1146,7 @@ g_ptr_array_copy (GPtrArray *array,
|
||||
for (i = 0; i < array->len; i++)
|
||||
new_array->pdata[i] = func (array->pdata[i], user_data);
|
||||
}
|
||||
else
|
||||
else if (array->len > 0)
|
||||
{
|
||||
memcpy (new_array->pdata, array->pdata,
|
||||
array->len * sizeof (*array->pdata));
|
||||
@@ -1797,7 +1797,7 @@ g_ptr_array_extend (GPtrArray *array_to_extend,
|
||||
rarray_to_extend->pdata[i + rarray_to_extend->len] =
|
||||
func (array->pdata[i], user_data);
|
||||
}
|
||||
else
|
||||
else if (array->len > 0)
|
||||
{
|
||||
memcpy (rarray_to_extend->pdata + rarray_to_extend->len, array->pdata,
|
||||
array->len * sizeof (*array->pdata));
|
||||
|
Reference in New Issue
Block a user