Add a NULL check into register_reply
authorMike Gorse <mgorse@suse.com>
Fri, 3 May 2013 14:48:50 +0000 (09:48 -0500)
committerMike Gorse <mgorse@suse.com>
Fri, 3 May 2013 14:48:50 +0000 (09:48 -0500)
Register_reply could access invalid memory if it is called after
atk_bridge_adaptor_cleanup() has been called.

This code should probably be refactored to make the instance act as a
GObject, but committing this for now to fix the crash.

https://bugzilla.gnome.org/show_bug.cgi?id=699554

atk-adaptor/bridge.c

index 1a36f14..e59c834 100644 (file)
@@ -235,6 +235,14 @@ register_reply (DBusPendingCall *pending, void *user_data)
 
   reply = dbus_pending_call_steal_reply (pending);
   dbus_pending_call_unref (pending);
 
   reply = dbus_pending_call_steal_reply (pending);
   dbus_pending_call_unref (pending);
+
+  if (!spi_global_app_data)
+    {
+      if (reply)
+         dbus_message_unref (reply);
+      return;
+    }
+
   if (reply)
     {
       gchar *app_name, *obj_path;
   if (reply)
     {
       gchar *app_name, *obj_path;