>From b492ab2f122cdc71113598bb38f76175503c034d Mon Sep 17 00:00:00 2001 From: Lukas Slebodnik Date: Fri, 24 Jan 2014 17:03:27 +0100 Subject: [PATCH 1/2] LDAP: store group if subdomain cannot be found by sid Domain needn't contain sid if id_provider is ldap. With enabled id mapping, group couldn't be stored, because domain couldn't be found by sid. Resolves: https://fedorahosted.org/sssd/ticket/2172 --- src/providers/ldap/sdap_async_groups.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/providers/ldap/sdap_async_groups.c b/src/providers/ldap/sdap_async_groups.c index f203bc962957d469a97a9c114617a0b160ebc4b3..1e0d7f69ee8458e7f228a70b26cc07c39b78c0b3 100644 --- a/src/providers/ldap/sdap_async_groups.c +++ b/src/providers/ldap/sdap_async_groups.c @@ -450,6 +450,7 @@ static int sdap_save_group(TALLOC_CTX *memctx, bool posix_group; bool use_id_mapping; char *sid_str; + struct sss_domain_info *subdomain; int32_t ad_group_type; tmpctx = talloc_new(NULL); @@ -488,11 +489,12 @@ static int sdap_save_group(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; } } -- 1.8.5.3