aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Terry <mike@mterry.name>2011-04-11 09:52:08 -0400
committerMichael Terry <mike@mterry.name>2011-04-11 09:52:08 -0400
commitbee98f757e7e8d1f17160ac85c489e679e6ed908 (patch)
tree5fe13dc623da88afc75ae73e3224651ccca8fe1f
parentf17f35feaf2f6d413302b813ef451d20491f4894 (diff)
downloadayatana-indicator-application-bee98f757e7e8d1f17160ac85c489e679e6ed908.tar.gz
ayatana-indicator-application-bee98f757e7e8d1f17160ac85c489e679e6ed908.tar.bz2
ayatana-indicator-application-bee98f757e7e8d1f17160ac85c489e679e6ed908.zip
catch one more cancel-before-accessing freed memory instance -- this one resulting in a double free
-rw-r--r--src/application-service-appstore.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/application-service-appstore.c b/src/application-service-appstore.c
index 3e827d5..4e32122 100644
--- a/src/application-service-appstore.c
+++ b/src/application-service-appstore.c
@@ -1110,6 +1110,11 @@ props_cb (GObject * object, GAsyncResult * res, gpointer user_data)
GDBusProxy * proxy = g_dbus_proxy_new_for_bus_finish(res, &error);
+ if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
+ g_error_free (error);
+ return; // Must exit before accessing freed memory
+ }
+
if (app->props_cancel != NULL) {
g_object_unref(app->props_cancel);
app->props_cancel = NULL;