summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Walters <walters@verbum.org>2010-02-01 17:38:25 -0500
committerColin Walters <walters@verbum.org>2010-02-01 17:40:17 -0500
commit0607bdb676c8fd95126ba994ab72e71becc232d8 (patch)
tree92c82fcadd80726bc5f9b37bcf7bd34851fab27c
parente59db9df47bcf99aa292e6d13ca2044105a94b90 (diff)
downloaddbus-0607bdb676c8fd95126ba994ab72e71becc232d8.tar.gz
Don't crash when reloading if we haven't loaded user database yet
The user database is populated on-demand, but the cache dropping code assumed it had been initialized. Simply check for NULL. https://bugs.freedesktop.org/show_bug.cgi?id=26182
-rw-r--r--dbus/dbus-userdb.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/dbus/dbus-userdb.c b/dbus/dbus-userdb.c
index 5a153c6a..bfa4c435 100644
--- a/dbus/dbus-userdb.c
+++ b/dbus/dbus-userdb.c
@@ -226,7 +226,8 @@ static DBusString process_homedir;
static void
shutdown_system_db (void *data)
{
- _dbus_user_database_unref (system_db);
+ if (system_db != NULL)
+ _dbus_user_database_unref (system_db);
system_db = NULL;
_dbus_string_free (&process_username);
_dbus_string_free (&process_homedir);
@@ -345,7 +346,8 @@ _dbus_user_database_flush_system (void)
{
_dbus_user_database_lock_system ();
- _dbus_user_database_flush (system_db);
+ if (system_db != NULL)
+ _dbus_user_database_flush (system_db);
_dbus_user_database_unlock_system ();
}