[glib] GDBusActionGroup: hold ref until async init done



commit 151b198b93764ac69b5c067afe9fbf7c6c4acea4
Author: Pavel Vasin <rat4vier gmail com>
Date:   Mon Jul 16 15:57:26 2012 +0400

    GDBusActionGroup: hold ref until async init done
    
    to avoid use-after-free if GDBusActionGroup was finalized
    
    https://bugzilla.gnome.org/show_bug.cgi?id=679509

 gio/gdbusactiongroup.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)
---
diff --git a/gio/gdbusactiongroup.c b/gio/gdbusactiongroup.c
index 6c55454..b1c7649 100644
--- a/gio/gdbusactiongroup.c
+++ b/gio/gdbusactiongroup.c
@@ -268,6 +268,8 @@ g_dbus_action_group_describe_all_done (GObject      *source,
       g_variant_iter_free (iter);
       g_variant_unref (reply);
     }
+
+  g_object_unref (group);
 }
 
 
@@ -283,7 +285,7 @@ g_dbus_action_group_async_init (GDBusActionGroup *group)
 
   g_dbus_connection_call (group->connection, group->bus_name, group->object_path, "org.gtk.Actions", "DescribeAll", NULL,
                           G_VARIANT_TYPE ("(a{s(bgav)})"), G_DBUS_CALL_FLAGS_NONE, -1, NULL,
-                          g_dbus_action_group_describe_all_done, group);
+                          g_dbus_action_group_describe_all_done, g_object_ref (group));
 }
 
 static gchar **



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]