summaryrefslogtreecommitdiffstats
path: root/src/providers/ldap/ldap_id_netgroup.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/providers/ldap/ldap_id_netgroup.c')
-rw-r--r--src/providers/ldap/ldap_id_netgroup.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/providers/ldap/ldap_id_netgroup.c b/src/providers/ldap/ldap_id_netgroup.c
index c82ccc439..6a668a1d6 100644
--- a/src/providers/ldap/ldap_id_netgroup.c
+++ b/src/providers/ldap/ldap_id_netgroup.c
@@ -59,6 +59,7 @@ struct tevent_req *netgroup_get_send(TALLOC_CTX *memctx,
{
struct tevent_req *req;
struct netgroup_get_state *state;
+ char *clean_name;
int ret;
req = tevent_req_create(memctx, &state, struct netgroup_get_state);
@@ -79,15 +80,21 @@ struct tevent_req *netgroup_get_send(TALLOC_CTX *memctx,
state->domain = state->ctx->be->domain;
state->name = name;
+ ret = sss_filter_sanitize(state, name, &clean_name);
+ if (ret != EOK) {
+ goto fail;
+ }
+
state->filter = talloc_asprintf(state, "(&(%s=%s)(objectclass=%s))",
ctx->opts->netgroup_map[SDAP_AT_NETGROUP_NAME].name,
- name,
+ clean_name,
ctx->opts->netgroup_map[SDAP_OC_NETGROUP].name);
if (!state->filter) {
DEBUG(2, ("Failed to build filter\n"));
ret = ENOMEM;
goto fail;
}
+ talloc_zfree(clean_name);
ret = build_attrs_from_map(state, ctx->opts->netgroup_map,
SDAP_OPTS_NETGROUP, &state->attrs);