Blame SOURCES/0074-LDAP-store-group-if-subdomain-cannot-be-found-by-sid.patch

2fc102
From 53554c55a75477b0ea719b845ff1660ac1a2ec82 Mon Sep 17 00:00:00 2001
2fc102
From: Lukas Slebodnik <lslebodn@redhat.com>
2fc102
Date: Fri, 24 Jan 2014 17:03:27 +0100
2fc102
Subject: [PATCH 74/75] LDAP: store group if subdomain cannot be found by sid
2fc102
2fc102
Domain needn't contain sid if id_provider is ldap.
2fc102
With enabled id mapping, group couldn't be stored, because domain
2fc102
couldn't be found by sid.
2fc102
2fc102
Resolves:
2fc102
https://fedorahosted.org/sssd/ticket/2172
2fc102
---
2fc102
 src/providers/ldap/sdap_async_groups.c | 10 ++++++----
2fc102
 1 file changed, 6 insertions(+), 4 deletions(-)
2fc102
2fc102
diff --git a/src/providers/ldap/sdap_async_groups.c b/src/providers/ldap/sdap_async_groups.c
2fc102
index 4ed7d4ab9c0c932da49b244f061329a334719159..ab3691f80aaecca988dcbf0877491a37af3ae49b 100644
2fc102
--- a/src/providers/ldap/sdap_async_groups.c
2fc102
+++ b/src/providers/ldap/sdap_async_groups.c
2fc102
@@ -452,6 +452,7 @@ static int sdap_save_group(TALLOC_CTX *memctx,
2fc102
     bool posix_group;
2fc102
     bool use_id_mapping;
2fc102
     char *sid_str;
2fc102
+    struct sss_domain_info *subdomain;
2fc102
     int32_t ad_group_type;
2fc102
 
2fc102
     tmpctx = talloc_new(NULL);
2fc102
@@ -490,11 +491,12 @@ static int sdap_save_group(TALLOC_CTX *memctx,
2fc102
     /* If this object has a SID available, we will determine the correct
2fc102
      * domain by its SID. */
2fc102
     if (sid_str != NULL) {
2fc102
-        dom = find_subdomain_by_sid(get_domains_head(dom), sid_str);
2fc102
-        if (dom == NULL) {
2fc102
-            DEBUG(SSSDBG_OP_FAILURE, ("SID %s does not belong to any known "
2fc102
+        subdomain = find_subdomain_by_sid(get_domains_head(dom), sid_str);
2fc102
+        if (subdomain) {
2fc102
+            dom = subdomain;
2fc102
+        } else {
2fc102
+            DEBUG(SSSDBG_TRACE_FUNC, ("SID %s does not belong to any known "
2fc102
                                       "domain\n", sid_str));
2fc102
-            return ERR_DOMAIN_NOT_FOUND;
2fc102
         }
2fc102
     }
2fc102
 
2fc102
-- 
2fc102
1.8.4.2
2fc102