diff options
author | Colin Walters <walters@verbum.org> | 2010-02-01 17:38:25 -0500 |
---|---|---|
committer | Colin Walters <walters@verbum.org> | 2010-02-01 17:40:17 -0500 |
commit | 0607bdb676c8fd95126ba994ab72e71becc232d8 (patch) | |
tree | 92c82fcadd80726bc5f9b37bcf7bd34851fab27c | |
parent | e59db9df47bcf99aa292e6d13ca2044105a94b90 (diff) | |
download | dbus-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.c | 6 |
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 (); } |