summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'gnome-base/gnome-control-center/files/gnome-control-center-2.26.0-gconf-unref.patch')
-rw-r--r--gnome-base/gnome-control-center/files/gnome-control-center-2.26.0-gconf-unref.patch16
1 files changed, 16 insertions, 0 deletions
diff --git a/gnome-base/gnome-control-center/files/gnome-control-center-2.26.0-gconf-unref.patch b/gnome-base/gnome-control-center/files/gnome-control-center-2.26.0-gconf-unref.patch
new file mode 100644
index 000000000000..24e8938d81e7
--- /dev/null
+++ b/gnome-base/gnome-control-center/files/gnome-control-center-2.26.0-gconf-unref.patch
@@ -0,0 +1,16 @@
+Fix excessive gconf_entry_free. It causes capplets crashes when gconf isn't build with g_asserts.
+
+Gnome: http://bugzilla.gnome.org/show_bug.cgi?id=583117
+Gentoo: https://bugs.gentoo.org/show_bug.cgi?id=270319
+--- a/capplets/common/gconf-property-editor.c
++++ b/capplets/common/gconf-property-editor.c
+@@ -351,7 +351,8 @@
+ gconf_entry = gconf_client_get_entry (client, GCONF_PROPERTY_EDITOR (obj)->p->key, NULL, TRUE, NULL);
+ GCONF_PROPERTY_EDITOR (obj)->p->callback (client, 0, gconf_entry, obj);
+ GCONF_PROPERTY_EDITOR (obj)->p->inited = TRUE;
+- gconf_entry_free (gconf_entry);
++ if (gconf_entry)
++ gconf_entry_free (gconf_entry);
+ g_object_unref (client);
+
+ return obj;