summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2011-10-16 21:17:59 +0200
committerStephen Gallagher <sgallagh@redhat.com>2011-10-17 14:37:39 -0400
commit6d83cdc959975eadc745ccbbd7dba11cc8ea702c (patch)
treec57158d7f2465ad3d3096b94f1fda010b8f13e14
parent543631376a59de3ca13b4ca933fcd53c14f4bd21 (diff)
downloadsssd_unused-6d83cdc959975eadc745ccbbd7dba11cc8ea702c.tar.gz
sssd_unused-6d83cdc959975eadc745ccbbd7dba11cc8ea702c.tar.xz
sssd_unused-6d83cdc959975eadc745ccbbd7dba11cc8ea702c.zip
Sanitize DN in sysdb_get_direct_parents
-rw-r--r--src/db/sysdb_search.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/db/sysdb_search.c b/src/db/sysdb_search.c
index 9c386cae..6386795c 100644
--- a/src/db/sysdb_search.c
+++ b/src/db/sysdb_search.c
@@ -899,6 +899,7 @@ errno_t sysdb_get_direct_parents(TALLOC_CTX *mem_ctx,
{
errno_t ret;
const char *dn;
+ char *sanitized_dn;
struct ldb_dn *basedn;
static const char *group_attrs[] = { SYSDB_NAME, NULL };
const char *member_filter;
@@ -927,9 +928,14 @@ errno_t sysdb_get_direct_parents(TALLOC_CTX *mem_ctx,
goto done;
}
+ ret = sss_filter_sanitize(tmp_ctx, dn, &sanitized_dn);
+ if (ret != EOK) {
+ goto done;
+ }
+
member_filter = talloc_asprintf(tmp_ctx, "(&(%s=%s)(%s=%s))",
SYSDB_OBJECTCLASS, SYSDB_GROUP_CLASS,
- SYSDB_MEMBER, dn);
+ SYSDB_MEMBER, sanitized_dn);
if (!member_filter) {
ret = ENOMEM;
goto done;