s4-samr: merge samr_RidToSid from s3 idl. (fixme: python)
authorGünther Deschner <gd@samba.org>
Mon, 27 Oct 2008 23:03:28 +0000 (00:03 +0100)
committerGünther Deschner <gd@samba.org>
Mon, 10 Nov 2008 20:46:27 +0000 (21:46 +0100)
Guenther

librpc/idl/samr.idl
source3/librpc/idl/samr.idl
source4/rpc_server/samr/dcesrv_samr.c
source4/torture/rpc/samr.c

index 7b7d1f9092a7f1c2b11e5a836736a36b0b9dc2d4..b0dacc91d4e0fd5de8f9f81a18907f202dcb878f 100644 (file)
@@ -1428,10 +1428,9 @@ import "misc.idl", "lsa.idl", "security.idl";
        NTSTATUS samr_RidToSid(
                [in,ref]    policy_handle *domain_handle,
                [in]        uint32        rid,
-               [out,unique] dom_sid2      *sid
+               [out,ref]   dom_sid2      **sid
                );
 
-
        /************************/
        /* Function    0x42     */
 
index 2f8657a0b1f043f65c3ea9c18e7e4a18731a4f3b..8fbc132aa7a86b2e213f9a6f94b07dcb845e4e0e 100644 (file)
@@ -1431,7 +1431,7 @@ import "misc.idl", "lsa.idl", "security.idl";
        NTSTATUS samr_RidToSid(
                [in,ref]    policy_handle *domain_handle,
                [in]        uint32        rid,
-               [out,ref]   dom_sid2      *sid
+               [out,ref]   dom_sid2      **sid
                );
 
        /************************/
index e8d800e23d39526fed9ba54618472a1d2a12a886..37446f5aa2c40ee38a1fe86196ea8c596eee8b66 100644 (file)
@@ -4307,8 +4307,8 @@ static NTSTATUS dcesrv_samr_RidToSid(struct dcesrv_call_state *dce_call, TALLOC_
        d_state = h->data;
 
        /* form the users SID */
-       r->out.sid = dom_sid_add_rid(mem_ctx, d_state->domain_sid, r->in.rid);
-       if (!r->out.sid) {
+       *r->out.sid = dom_sid_add_rid(mem_ctx, d_state->domain_sid, r->in.rid);
+       if (!*r->out.sid) {
                return NT_STATUS_NO_MEMORY;
        }
 
index 9ea92037d0e990d2d1724d40146b110d73ecad8d..8e527d990b1f80a20c93d8ee4ceec31f6617e2e2 100644 (file)
@@ -4146,7 +4146,7 @@ static bool test_RidToSid(struct dcerpc_pipe *p, struct torture_context *tctx,
        struct samr_RidToSid r;
        NTSTATUS status;
        bool ret = true;
-       struct dom_sid *calc_sid;
+       struct dom_sid *calc_sid, *out_sid;
        int rids[] = { 0, 42, 512, 10200 };
        int i;
 
@@ -4156,6 +4156,7 @@ static bool test_RidToSid(struct dcerpc_pipe *p, struct torture_context *tctx,
                calc_sid = dom_sid_dup(tctx, domain_sid);
                r.in.domain_handle = domain_handle;
                r.in.rid = rids[i];
+               r.out.sid = &out_sid;
                
                status = dcerpc_samr_RidToSid(p, tctx, &r);
                if (!NT_STATUS_IS_OK(status)) {
@@ -4164,9 +4165,9 @@ static bool test_RidToSid(struct dcerpc_pipe *p, struct torture_context *tctx,
                } else {
                        calc_sid = dom_sid_add_rid(calc_sid, calc_sid, rids[i]);
 
-                       if (!dom_sid_equal(calc_sid, r.out.sid)) {
+                       if (!dom_sid_equal(calc_sid, out_sid)) {
                                printf("RidToSid for %d failed - got %s, expected %s\n", rids[i], 
-                                      dom_sid_string(tctx, r.out.sid), 
+                                      dom_sid_string(tctx, out_sid),
                                       dom_sid_string(tctx, calc_sid));
                                ret = false;
                        }