mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-03-14 19:55:12 +01:00
glib/gbytes: Be more careful when saving a GBytes of NULL
In 1e3b010 the behaviour of `g_bytes_new (NULL, 0)` was changed; before the `g_bytes_get_data()` would return NULL as expected, but now it returns a pointer outside the single GBytes allocation. This breaks the fwupd self tests as we use a GBytes of NULL to signify that the emulation data exists, but it has no content. Catch this case and restore the old behaviour.
This commit is contained in:
parent
3e87611232
commit
9ddc97314b
@ -128,7 +128,7 @@ g_bytes_new (gconstpointer data,
|
||||
GBytesInline *bytes;
|
||||
|
||||
bytes = g_malloc (sizeof *bytes + size);
|
||||
bytes->bytes.data = bytes->inline_data;
|
||||
bytes->bytes.data = data != NULL ? bytes->inline_data : NULL;
|
||||
bytes->bytes.size = size;
|
||||
bytes->bytes.free_func = NULL;
|
||||
bytes->bytes.user_data = NULL;
|
||||
|
@ -451,6 +451,7 @@ test_null (void)
|
||||
gsize size;
|
||||
|
||||
bytes = g_bytes_new (NULL, 0);
|
||||
g_assert_null (g_bytes_get_data (bytes, NULL));
|
||||
|
||||
data = g_bytes_unref_to_data (bytes, &size);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user