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