diff options
author | Ray Strode <rstrode@redhat.com> | 2018-04-20 16:43:15 -0400 |
---|---|---|
committer | Ray Strode <rstrode@redhat.com> | 2018-04-20 16:51:29 -0400 |
commit | 9a6a5684f684452e3bcea229a7a4ccdea2934863 (patch) | |
tree | 561163ab72463eccab9be9fe81cbbb0b0dd25fd2 | |
parent | e18e8a3a0642b50801da04f3575fc9cca62b291c (diff) | |
download | accountsservice-9a6a5684f684452e3bcea229a7a4ccdea2934863.tar.gz |
lib: don't emit user-added signal until list_users is completed
Right now calling act_user_manager_list_users can inadvertently
lead to user-added signals getting emitted before the call completes.
This is not something users of the API expect.
https://bugs.freedesktop.org/show_bug.cgi?id=106162
-rw-r--r-- | src/libaccountsservice/act-user-manager.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/libaccountsservice/act-user-manager.c b/src/libaccountsservice/act-user-manager.c index 9304ea6..ade309c 100644 --- a/src/libaccountsservice/act-user-manager.c +++ b/src/libaccountsservice/act-user-manager.c @@ -832,7 +832,7 @@ add_user (ActUserManager *manager, G_CALLBACK (on_user_changed), manager, 0); - if (manager->priv->is_loaded) { + if (manager->priv->is_loaded && manager->priv->list_cached_users_done) { g_debug ("ActUserManager: loaded, so emitting user-added signal"); g_signal_emit (manager, signals[USER_ADDED], 0, user); } else { @@ -861,7 +861,7 @@ remove_user (ActUserManager *manager, } - if (manager->priv->is_loaded) { + if (manager->priv->is_loaded && manager->priv->list_cached_users_done) { g_debug ("ActUserManager: loaded, so emitting user-removed signal"); g_signal_emit (manager, signals[USER_REMOVED], 0, user); } else { |