Commit 37d9b0c6 authored by Philip Withnall's avatar Philip Withnall

gdbusutils: Fix a memory leak in g_dbus_gvalue_to_gvariant()

g_variant_get_normal_form() doesn’t necessarily return a floating
GVariant, so we have to take, rather than sink, the ref.

This fixes a lot of leaks with gdbus-codegen-generated code.
Signed-off-by: Philip Withnall's avatarPhilip Withnall <withnall@endlessm.com>

https://bugzilla.gnome.org/show_bug.cgi?id=741167
parent d35d9b79
......@@ -685,7 +685,7 @@ g_dbus_gvalue_to_gvariant (const GValue *gvalue,
{
GVariant *untrusted_empty;
untrusted_empty = g_variant_new_from_data (type, NULL, 0, FALSE, NULL, NULL);
ret = g_variant_ref_sink (g_variant_get_normal_form (untrusted_empty));
ret = g_variant_take_ref (g_variant_get_normal_form (untrusted_empty));
g_variant_unref (untrusted_empty);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment