diff options
author | Sumit Bose <sbose@redhat.com> | 2015-01-21 16:33:59 +0100 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2015-01-26 23:47:36 +0100 |
commit | 60f11e2fa1f63cd40ebace525ad823b0360fac94 (patch) | |
tree | d87728c1fa30dbcc4eb8ce2e7a4a5a0030f6f44d /src/providers/ipa/ipa_s2n_exop.c | |
parent | 63748c69a2c6785d949c82f94749704e0408e5a7 (diff) | |
download | sssd-60f11e2fa1f63cd40ebace525ad823b0360fac94.tar.gz sssd-60f11e2fa1f63cd40ebace525ad823b0360fac94.tar.xz sssd-60f11e2fa1f63cd40ebace525ad823b0360fac94.zip |
IPA: process_members() add ghosts only once
Since ghost entries might not be properly removed on the IPA server
(https://fedorahosted.org/sssd/ticket/2567) chances are that during
extdom group lookups a single user is returned multiple time. This patch
removes the duplicates before trying to write the data to the cache.
Related to https://fedorahosted.org/sssd/ticket/2159
Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
Diffstat (limited to 'src/providers/ipa/ipa_s2n_exop.c')
-rw-r--r-- | src/providers/ipa/ipa_s2n_exop.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/providers/ipa/ipa_s2n_exop.c b/src/providers/ipa/ipa_s2n_exop.c index 997d0dce8..6f8d5687d 100644 --- a/src/providers/ipa/ipa_s2n_exop.c +++ b/src/providers/ipa/ipa_s2n_exop.c @@ -1299,8 +1299,10 @@ static errno_t process_members(struct sss_domain_info *domain, DEBUG(SSSDBG_TRACE_ALL, "Adding ghost member [%s]\n", members[c]); - ret = sysdb_attrs_add_string(group_attrs, SYSDB_GHOST, - members[c]); + /* There were cases where the server returned the same user + * multiple times */ + ret = sysdb_attrs_add_string_safe(group_attrs, SYSDB_GHOST, + members[c]); if (ret != EOK) { DEBUG(SSSDBG_OP_FAILURE, "sysdb_attrs_add_string failed.\n"); |