diff options
author | Lukas Slebodnik <lslebodn@redhat.com> | 2013-12-13 18:20:08 +0100 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2014-01-22 16:59:23 +0100 |
commit | 8509e1fe368b62225b7cf39eb1eec6cac7bf38b3 (patch) | |
tree | ad0c3f59e1e5a744556d5693bf083d8ab99b2fc7 | |
parent | fe7f5b1a3a965d1667ba1552a2b1165788f3bd2e (diff) | |
download | sssd-8509e1fe368b62225b7cf39eb1eec6cac7bf38b3.tar.gz sssd-8509e1fe368b62225b7cf39eb1eec6cac7bf38b3.tar.xz sssd-8509e1fe368b62225b7cf39eb1eec6cac7bf38b3.zip |
LDAP: Don't fail if subdomain cannot be found by sid
Domain needn't contain sid if id_provider is ldap.
With enabled id mapping, user couldn't be stored, because domain
couldn't be found by sid.
Resolves:
https://fedorahosted.org/sssd/ticket/2172
-rw-r--r-- | src/providers/ldap/sdap_async_users.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/providers/ldap/sdap_async_users.c b/src/providers/ldap/sdap_async_users.c index 7f0b2eea0..65c456c8f 100644 --- a/src/providers/ldap/sdap_async_users.c +++ b/src/providers/ldap/sdap_async_users.c @@ -124,6 +124,7 @@ int sdap_save_user(TALLOC_CTX *memctx, bool use_id_mapping; char *sid_str; char *dom_sid_str = NULL; + struct sss_domain_info *subdomain; DEBUG(SSSDBG_TRACE_FUNC, ("Save user\n")); @@ -163,11 +164,12 @@ int sdap_save_user(TALLOC_CTX *memctx, /* If this object has a SID available, we will determine the correct * domain by its SID. */ if (sid_str != NULL) { - dom = find_subdomain_by_sid(get_domains_head(dom), sid_str); - if (dom == NULL) { - DEBUG(SSSDBG_OP_FAILURE, ("SID %s does not belong to any known " + subdomain = find_subdomain_by_sid(get_domains_head(dom), sid_str); + if (subdomain) { + dom = subdomain; + } else { + DEBUG(SSSDBG_TRACE_FUNC, ("SID %s does not belong to any known " "domain\n", sid_str)); - return ERR_DOMAIN_NOT_FOUND; } } |