mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-07-23 10:27:51 +02:00
gvariant: Avoid memcmp (NULL, ., 0) or memcmp (., NULL, 0)
Similar to 3837b83f
, glibc memcmp is declared with the first two
arguments annotated as non-null via an attribute, which results in the
undefined behaviour sanitizer considering it to be UB to pass a null
pointer there (even if we are comparing 0 bytes, and hence not actually
dereferencing the pointer).
This shows up in /gvariant/serialiser/children when run with the
undefined behaviour sanitizer.
Signed-off-by: Simon McVittie <smcv@collabora.com>
This commit is contained in:
@@ -2765,7 +2765,10 @@ g_variant_equal (gconstpointer one,
|
|||||||
data_one = g_variant_get_data ((GVariant *) one);
|
data_one = g_variant_get_data ((GVariant *) one);
|
||||||
data_two = g_variant_get_data ((GVariant *) two);
|
data_two = g_variant_get_data ((GVariant *) two);
|
||||||
|
|
||||||
|
if (size_one)
|
||||||
equal = memcmp (data_one, data_two, size_one) == 0;
|
equal = memcmp (data_one, data_two, size_one) == 0;
|
||||||
|
else
|
||||||
|
equal = TRUE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user