diff options
author | Mike Gorse <mgorse@suse.com> | 2012-09-20 13:26:12 -0500 |
---|---|---|
committer | Mike Gorse <mgorse@suse.com> | 2012-09-20 13:26:12 -0500 |
commit | b3210d247daa9480d3037bac4d7cc1963883abea (patch) | |
tree | 43b21a95e0287068eda40fb4dca57f073ac99159 | |
parent | 7d9875fca39efe216625ee411bf18661b548da54 (diff) | |
download | at-spi2-atk-b3210d247daa9480d3037bac4d7cc1963883abea.tar.gz |
Fix crashes in atk_bridge_adaptor_cleanup
When freeing data, atk_bridge_adaptor_cleanup frees the wrong pointer,
resulting in a crash. Also, we need to close D-Bus connections before
removing the last reference, or libdbus will abort.
https://bugzilla.gnome.org/show_bug.cgi?id=684434
-rw-r--r-- | atk-adaptor/bridge.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/atk-adaptor/bridge.c b/atk-adaptor/bridge.c index 99a6a36..74f0431 100644 --- a/atk-adaptor/bridge.c +++ b/atk-adaptor/bridge.c @@ -963,13 +963,14 @@ atk_bridge_adaptor_cleanup (void) droute_context_unregister (spi_global_app_data->droute, connection); droute_unintercept_dbus (connection); + dbus_connection_close (connection); dbus_connection_unref (connection); } g_list_free (spi_global_app_data->direct_connections); spi_global_app_data->direct_connections = NULL; for (ls = clients; ls; ls = ls->next) - g_free (l->data); + g_free (ls->data); g_slist_free (clients); clients = NULL; |