You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.5 KiB
53 lines
1.5 KiB
From 6f3e127330cb0820a373be77be3cb2cacd0b352e Mon Sep 17 00:00:00 2001
|
|
From: Ray Strode <rstrode@redhat.com>
|
|
Date: Mon, 13 Feb 2012 23:35:06 -0500
|
|
Subject: [PATCH] gconf-dbus: don't crash during sync if gconfd shutting down
|
|
|
|
The gconfd shuts down after a bit of inactivity. When that
|
|
happens there's a window where it refuses requests from the
|
|
client library with an error. The library is resposible for
|
|
gracefully handling this condition and reacting appropriately.
|
|
|
|
There are many places in the code where the client library has
|
|
this idiom:
|
|
|
|
db = gconf_engine_get_database (conf, TRUE, err);
|
|
|
|
if (db == NULL)
|
|
{
|
|
g_return_if_fail(err == NULL || *err != NULL);
|
|
|
|
return;
|
|
}
|
|
|
|
In the event gconfd is shutting down, db will be NULL, and the
|
|
code will return early from whatever (non-critical) operation
|
|
it was doing.
|
|
|
|
gconf_engine_suggest_sync has a similiar chunk of code, but it
|
|
neglected the "return;" and then promptly crashed since it wasn't
|
|
expecting db to be NULL.
|
|
|
|
This commit adds the return;
|
|
|
|
https://bugzilla.gnome.org/show_bug.cgi?id=670033
|
|
---
|
|
gconf/gconf-dbus.c | 1 +
|
|
1 files changed, 1 insertions(+), 0 deletions(-)
|
|
|
|
diff --git a/gconf/gconf-dbus.c b/gconf/gconf-dbus.c
|
|
index 9f92125..442a94b 100644
|
|
--- a/gconf/gconf-dbus.c
|
|
+++ b/gconf/gconf-dbus.c
|
|
@@ -2029,6 +2029,7 @@ gconf_engine_suggest_sync(GConfEngine* conf, GError** err)
|
|
if (db == NULL)
|
|
{
|
|
g_return_if_fail (err == NULL || *err != NULL);
|
|
+ return;
|
|
}
|
|
|
|
message = dbus_message_new_method_call (GCONF_DBUS_SERVICE,
|
|
--
|
|
1.7.9
|
|
|