Fixup returns from lookupsids in the same way as lookupnames. Inspired by
authorJeremy Allison <jra@samba.org>
Thu, 19 Feb 2004 23:01:52 +0000 (23:01 +0000)
committerJeremy Allison <jra@samba.org>
Thu, 19 Feb 2004 23:01:52 +0000 (23:01 +0000)
Volkers patch.
Jeremy.
(This used to be commit aff6bacf0e461322e6e165cb7a6a42f4d976f52b)

source3/rpc_server/srv_lsa_nt.c

index ddf79ef5648536f17ad090b800c62c18140e6461..aa933f9d0dcf54bce3d10ff152d42984cf1a4234 100644 (file)
@@ -174,7 +174,7 @@ static void init_lsa_rid2s(DOM_R_REF *ref, DOM_RID2 *rid2,
                        (*mapped_count)++;
                } else {
                        dom_idx = -1;
-                       rid = 0xffffffff;
+                       rid = 0;
                        name_type = SID_NAME_UNKNOWN;
                }
 
@@ -202,11 +202,6 @@ static void init_reply_lookup_names(LSA_R_LOOKUP_NAMES *r_l,
        r_l->dom_rid      = rid2;
 
        r_l->mapped_count = mapped_count;
-
-       if (mapped_count == 0)
-               r_l->status = NT_STATUS_NONE_MAPPED;
-       else
-               r_l->status = NT_STATUS_OK;
 }
 
 /***************************************************************************
@@ -711,6 +706,12 @@ done:
 
        /* set up the LSA Lookup RIDs response */
        init_lsa_rid2s(ref, rids, num_entries, names, &mapped_count, p->endian);
+       if (mapped_count == 0)
+               r_u->status = NT_STATUS_NONE_MAPPED;
+       else if (mapped_count != num_entries)
+               r_u->status = STATUS_SOME_UNMAPPED;
+       else
+               r_u->status = NT_STATUS_OK;
        init_reply_lookup_names(r_u, ref, num_entries, rids, mapped_count);
 
        return r_u->status;