Don't crash when reloading if we haven't loaded user database yet
authorColin Walters <walters@verbum.org>
Mon, 1 Feb 2010 22:38:25 +0000 (17:38 -0500)
committerColin Walters <walters@verbum.org>
Mon, 1 Feb 2010 22:40:17 +0000 (17:40 -0500)
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

dbus/dbus-userdb.c

index 5a153c6..bfa4c43 100644 (file)
@@ -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 ();
 }