diff options
author | Mantas Mikulėnas <grawity@gmail.com> | 2016-02-24 19:40:47 +0200 |
---|---|---|
committer | Garming Sam <garming@samba.org> | 2016-05-11 03:47:04 +0200 |
commit | 37ef959f37dc57302ff5824ff3223617863aad3e (patch) | |
tree | e55142cacdd3b3d1e0cb80e18104226b38f31e66 /source4 | |
parent | e3fdb0a9b6a19a48c6ccd72b37485ae4a8217464 (diff) | |
download | samba-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.c | 17 |
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; } |