mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-25 21:46: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;
|
GDBusMessage *recovered_message;
|
||||||
GError *error;
|
GError *error;
|
||||||
DBusError dbus_error;
|
DBusError dbus_error;
|
||||||
|
gchar *last_serialization = NULL;
|
||||||
gchar *s = NULL;
|
gchar *s = NULL;
|
||||||
guint n;
|
guint n;
|
||||||
|
|
||||||
@ -617,11 +618,19 @@ get_and_check_serialization (GVariant *value)
|
|||||||
}
|
}
|
||||||
g_object_unref (recovered_message);
|
g_object_unref (recovered_message);
|
||||||
g_free (blob);
|
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);
|
g_object_unref (message);
|
||||||
|
|
||||||
return g_steal_pointer (&s);
|
return g_steal_pointer (&last_serialization);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If @value is floating, this assumes ownership. */
|
/* If @value is floating, this assumes ownership. */
|
||||||
|
Loading…
Reference in New Issue
Block a user