mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-11 15:06:14 +01:00
gdbus-serialization: Don't leak string containing first serialization
We format the message into a string twice, once for each byte-order, but only return the one corresponding to the last byte-order to the caller. This means we need to free the first one. Signed-off-by: Simon McVittie <smcv@collabora.com>
This commit is contained in:
parent
fdc192f460
commit
de87bcf7ff
@ -524,6 +524,7 @@ get_and_check_serialization (GVariant *value)
|
||||
GDBusMessage *recovered_message;
|
||||
GError *error;
|
||||
DBusError dbus_error;
|
||||
gchar *last_serialization = NULL;
|
||||
gchar *s = NULL;
|
||||
guint n;
|
||||
|
||||
@ -617,11 +618,19 @@ get_and_check_serialization (GVariant *value)
|
||||
}
|
||||
g_object_unref (recovered_message);
|
||||
g_free (blob);
|
||||
|
||||
if (last_serialization != NULL)
|
||||
{
|
||||
g_assert_cmpstr (last_serialization, ==, s);
|
||||
g_free (last_serialization);
|
||||
}
|
||||
|
||||
last_serialization = g_steal_pointer (&s);
|
||||
}
|
||||
|
||||
g_object_unref (message);
|
||||
|
||||
return g_steal_pointer (&s);
|
||||
return g_steal_pointer (&last_serialization);
|
||||
}
|
||||
|
||||
/* If @value is floating, this assumes ownership. */
|
||||
|
Loading…
Reference in New Issue
Block a user