diff --git a/glib/gbytes.c b/glib/gbytes.c index 9b358c4a0..a3647caee 100644 --- a/glib/gbytes.c +++ b/glib/gbytes.c @@ -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; diff --git a/glib/tests/bytes.c b/glib/tests/bytes.c index 16a08e222..7d432fdee 100644 --- a/glib/tests/bytes.c +++ b/glib/tests/bytes.c @@ -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);