summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/rpc_server/srv_samr_nt.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/source3/rpc_server/srv_samr_nt.c b/source3/rpc_server/srv_samr_nt.c
index 3cc86edd62..ba9d911c2b 100644
--- a/source3/rpc_server/srv_samr_nt.c
+++ b/source3/rpc_server/srv_samr_nt.c
@@ -1794,6 +1794,7 @@ NTSTATUS _samr_LookupNames(pipes_struct *p,
DOM_SID pol_sid;
uint32 acc_granted;
struct samr_Ids rids, types;
+ uint32_t num_mapped = 0;
DEBUG(5,("_samr_LookupNames: %d\n", __LINE__));
@@ -1841,10 +1842,18 @@ NTSTATUS _samr_LookupNames(pipes_struct *p,
}
if (type[i] != SID_NAME_UNKNOWN) {
- status = NT_STATUS_OK;
+ num_mapped++;
}
}
+ if (num_mapped == num_rids) {
+ status = NT_STATUS_OK;
+ } else if (num_mapped == 0) {
+ status = NT_STATUS_NONE_MAPPED;
+ } else {
+ status = STATUS_SOME_UNMAPPED;
+ }
+
rids.count = num_rids;
rids.ids = rid;