summaryrefslogtreecommitdiff
path: root/source4
diff options
context:
space:
mode:
authorMantas Mikulėnas <grawity@gmail.com>2016-02-24 19:40:47 +0200
committerGarming Sam <garming@samba.org>2016-05-11 03:47:04 +0200
commit37ef959f37dc57302ff5824ff3223617863aad3e (patch)
treee55142cacdd3b3d1e0cb80e18104226b38f31e66 /source4
parente3fdb0a9b6a19a48c6ccd72b37485ae4a8217464 (diff)
downloadsamba-37ef959f37dc57302ff5824ff3223617863aad3e.tar.gz
samr4: Use <SID=%s> in GetAliasMembership
As in commit 841845dea35089a187fd1626c9752d708989ac7b, this avoids quoting problems in user DN's. BUG: https://bugzilla.samba.org/show_bug.cgi?id=11751 Signed-off-by: Mantas Mikulėnas <grawity@gmail.com> Reviewed-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'source4')
-rw-r--r--source4/rpc_server/samr/dcesrv_samr.c17
1 files changed, 5 insertions, 12 deletions
diff --git a/source4/rpc_server/samr/dcesrv_samr.c b/source4/rpc_server/samr/dcesrv_samr.c
index 423fcf0e968..5b6d4a1e893 100644
--- a/source4/rpc_server/samr/dcesrv_samr.c
+++ b/source4/rpc_server/samr/dcesrv_samr.c
@@ -1530,6 +1530,7 @@ static NTSTATUS dcesrv_samr_GetAliasMembership(struct dcesrv_call_state *dce_cal
struct ldb_message **res;
uint32_t i;
int count = 0;
+ char membersidstr[DOM_SID_STR_BUFLEN];
DCESRV_PULL_HANDLE(h, r->in.domain_handle, SAMR_HANDLE_DOMAIN);
@@ -1545,19 +1546,11 @@ static NTSTATUS dcesrv_samr_GetAliasMembership(struct dcesrv_call_state *dce_cal
}
for (i=0; i<r->in.sids->num_sids; i++) {
- const char *memberdn;
-
- memberdn = samdb_search_string(d_state->sam_ctx, mem_ctx, NULL,
- "distinguishedName",
- "(objectSid=%s)",
- ldap_encode_ndr_dom_sid(mem_ctx,
- r->in.sids->sids[i].sid));
- if (memberdn == NULL) {
- continue;
- }
+ dom_sid_string_buf(r->in.sids->sids[i].sid,
+ membersidstr, sizeof(membersidstr));
- filter = talloc_asprintf(mem_ctx, "%s(member=%s)", filter,
- memberdn);
+ filter = talloc_asprintf(mem_ctx, "%s(member=<SID=%s>)",
+ filter, membersidstr);
if (filter == NULL) {
return NT_STATUS_NO_MEMORY;
}