diff options
Diffstat (limited to 'source4/rpc_server/samr/dcesrv_samr.c')
-rw-r--r-- | source4/rpc_server/samr/dcesrv_samr.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/source4/rpc_server/samr/dcesrv_samr.c b/source4/rpc_server/samr/dcesrv_samr.c index 73b740e466..4bc03cc647 100644 --- a/source4/rpc_server/samr/dcesrv_samr.c +++ b/source4/rpc_server/samr/dcesrv_samr.c @@ -1783,7 +1783,7 @@ static NTSTATUS dcesrv_samr_LookupNames(struct dcesrv_call_state *dce_call, TALL { struct dcesrv_handle *h; struct samr_domain_state *d_state; - int i; + int i, num_mapped; NTSTATUS status = NT_STATUS_OK; const char * const attrs[] = { "sAMAccountType", "objectSid", NULL }; int count; @@ -1807,6 +1807,8 @@ static NTSTATUS dcesrv_samr_LookupNames(struct dcesrv_call_state *dce_call, TALL r->out.rids.count = r->in.num_names; r->out.types.count = r->in.num_names; + num_mapped = 0; + for (i=0;i<r->in.num_names;i++) { struct ldb_message **res; struct dom_sid *sid; @@ -1844,9 +1846,12 @@ static NTSTATUS dcesrv_samr_LookupNames(struct dcesrv_call_state *dce_call, TALL r->out.rids.ids[i] = sid->sub_auths[sid->num_auths-1]; r->out.types.ids[i] = rtype; + num_mapped++; } - + if (num_mapped == 0) { + return NT_STATUS_NONE_MAPPED; + } return status; } |