Blame SOURCES/ibus-1882009-Fix-GVariant-leaks.patch

ac1bbc
From 803e65e8e133a969d21d333ec932884e7617d438 Mon Sep 17 00:00:00 2001
ac1bbc
From: Carlos Garnacho <carlosg@gnome.org>
ac1bbc
Date: Fri, 27 Oct 2017 21:40:45 +0200
ac1bbc
Subject: [PATCH] Fix GVariant leaks
ac1bbc
ac1bbc
g_task_propagate_pointer() gives ownership of the data to the caller, so
ac1bbc
the GVariants handed this way must be unref'ed after the contents have
ac1bbc
been extracted/copied.
ac1bbc
---
ac1bbc
 src/ibusbus.c | 7 +++++++
ac1bbc
 1 file changed, 7 insertions(+)
ac1bbc
ac1bbc
diff --git a/src/ibusbus.c b/src/ibusbus.c
ac1bbc
index fc0c90335..11659c41f 100644
ac1bbc
--- a/src/ibusbus.c
ac1bbc
+++ b/src/ibusbus.c
ac1bbc
@@ -755,6 +755,7 @@ _async_finish_object_path (GTask   *task,
ac1bbc
     g_variant_get (result, "(v)", &variant);
ac1bbc
     path = g_variant_dup_string (variant, NULL);
ac1bbc
     g_variant_unref (variant);
ac1bbc
+    g_variant_unref (result);
ac1bbc
     return path;
ac1bbc
 }
ac1bbc
 
ac1bbc
@@ -772,6 +773,7 @@ _async_finish_string (GTask   *task,
ac1bbc
     }
ac1bbc
     g_return_val_if_fail (variant != NULL, NULL);
ac1bbc
     g_variant_get (variant, "(&s)", &s);
ac1bbc
+    g_variant_unref (variant);
ac1bbc
     return s;
ac1bbc
 }
ac1bbc
 
ac1bbc
@@ -789,6 +791,7 @@ _async_finish_gboolean (GTask   *task,
ac1bbc
     }
ac1bbc
     g_return_val_if_fail (variant != NULL, FALSE);
ac1bbc
     g_variant_get (variant, "(b)", &retval);
ac1bbc
+    g_variant_unref (variant);
ac1bbc
     return retval;
ac1bbc
 }
ac1bbc
 
ac1bbc
@@ -807,6 +810,7 @@ _async_finish_guint (GTask   *task,
ac1bbc
     }
ac1bbc
     g_return_val_if_fail (variant != NULL, bad_id);
ac1bbc
     g_variant_get (variant, "(u)", &id;;
ac1bbc
+    g_variant_unref (variant);
ac1bbc
     return id;
ac1bbc
 }
ac1bbc
 
ac1bbc
@@ -1864,6 +1868,7 @@ ibus_bus_list_engines_async_finish (IBusBus      *bus,
ac1bbc
     }
ac1bbc
     g_variant_iter_free (iter);
ac1bbc
     g_variant_unref (variant);
ac1bbc
+    g_variant_unref (result);
ac1bbc
     return retval;
ac1bbc
 }
ac1bbc
 
ac1bbc
@@ -2243,6 +2248,7 @@ ibus_bus_get_global_engine_async_finish (IBusBus      *bus,
ac1bbc
         g_variant_unref (obj);
ac1bbc
         g_variant_unref (variant);
ac1bbc
     }
ac1bbc
+    g_variant_unref (result);
ac1bbc
     return engine;
ac1bbc
 }
ac1bbc
 
ac1bbc
@@ -2461,6 +2467,7 @@ ibus_bus_get_ibus_property_async_finish (IBusBus      *bus,
ac1bbc
     g_return_val_if_fail (result != NULL, NULL);
ac1bbc
     GVariant *retval = NULL;
ac1bbc
     g_variant_get (result, "(v)", &retval);
ac1bbc
+    g_variant_unref (result);
ac1bbc
 
ac1bbc
     return retval;
ac1bbc
 }