Blob Blame History Raw
From 014517f8d8385c4fe700795d28f482f79c9563c8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pavel=20B=C5=99ezina?= <pbrezina@redhat.com>
Date: Mon, 6 Oct 2014 13:44:37 +0200
Subject: [PATCH 03/45] sysdb_get_user_attr: use fqn for subdomain users
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Name of subdomain users is stored with domain part in the sysdb.
We need to use fully qualified names for those user so we can
look them up.

Reviewed-by: Lukáš Slebodník <lslebodn@redhat.com>
(cherry picked from commit 36ea9f2a4ff47a045625203a02c6deed9c53e169)
---
 src/db/sysdb_search.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/db/sysdb_search.c b/src/db/sysdb_search.c
index 6d24046741786ca5aea85cac1811dd6687eb04a1..8396acbfdf1f3e41b1048e8962f155b97067f7e4 100644
--- a/src/db/sysdb_search.c
+++ b/src/db/sysdb_search.c
@@ -486,6 +486,7 @@ int sysdb_get_user_attr(TALLOC_CTX *mem_ctx,
     TALLOC_CTX *tmp_ctx;
     struct ldb_dn *base_dn;
     struct ldb_result *res;
+    const char *src_name;
     char *sanitized_name;
     char *lc_sanitized_name;
     int ret;
@@ -502,8 +503,16 @@ int sysdb_get_user_attr(TALLOC_CTX *mem_ctx,
         goto done;
     }
 
-    ret = sss_filter_sanitize_for_dom(tmp_ctx, name, domain, &sanitized_name,
-                                      &lc_sanitized_name);
+    /* If this is a subdomain we need to use fully qualified names for the
+     * search as well by default */
+    src_name = sss_get_domain_name(tmp_ctx, name, domain);
+    if (!src_name) {
+        ret = ENOMEM;
+        goto done;
+    }
+
+    ret = sss_filter_sanitize_for_dom(tmp_ctx, src_name, domain,
+                                      &sanitized_name, &lc_sanitized_name);
     if (ret != EOK) {
         goto done;
     }
-- 
2.4.3