s3-samr: fix _samr_LookupNames return code.
authorGünther Deschner <gd@samba.org>
Tue, 25 Nov 2008 11:19:35 +0000 (12:19 +0100)
committerGünther Deschner <gd@samba.org>
Tue, 25 Nov 2008 14:42:31 +0000 (15:42 +0100)
Guenther
(cherry picked from commit dc7c2d63b3ce142959aa863f000fa9140de99eb0)

source/rpc_server/srv_samr_nt.c

index a24fb324b05b4ecc5dd855cd5f5d3026280ea369..e2cf8cdee031054fc1566108c56dba35d765911c 100644 (file)
@@ -1850,6 +1850,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__));
 
@@ -1897,10 +1898,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;