r4492: r.in.info is a pointer that needs to be allocated before use
[samba.git] / source4 / torture / rpc / samr.c
index 29ae5b9273d9b83aaaae08b649f5ada8934574fb..ea645d72d49d5e25c3813b93d52b88e8f050b758 100644 (file)
@@ -70,7 +70,7 @@ static BOOL test_Shutdown(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        NTSTATUS status;
        struct samr_Shutdown r;
 
-       if (lp_parm_int(-1, "torture", "dangerous") != 1) {
+       if (!lp_parm_bool(-1, "torture", "dangerous", False)) {
                printf("samr_Shutdown disabled - enable dangerous tests to use\n");
                return True;
        }
@@ -96,7 +96,7 @@ static BOOL test_SetDsrmPassword(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        struct samr_String string;
        struct samr_Password hash;
 
-       if (lp_parm_int(-1, "torture", "dangerous") != 1) {
+       if (!lp_parm_bool(-1, "torture", "dangerous", False)) {
                printf("samr_SetDsrmPassword disabled - enable dangerous tests to use\n");
                return True;
        }
@@ -629,9 +629,10 @@ static BOOL test_SetAliasInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 
                r.in.alias_handle = handle;
                r.in.level = levels[i];
+               r.in.info  = talloc_p(mem_ctx, union samr_AliasInfo);
                switch (r.in.level) {
-                   case 2 : init_samr_String(&r.in.info.name,TEST_ALIASNAME); break;
-                   case 3 : init_samr_String(&r.in.info.description,
+                   case 2 : init_samr_String(&r.in.info->name,TEST_ALIASNAME); break;
+                   case 3 : init_samr_String(&r.in.info->description,
                                "Test Description, should test I18N as well"); break;
                }
 
@@ -796,7 +797,7 @@ static NTSTATUS test_OpenUser_byname(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        }
 
        r.in.domain_handle = domain_handle;
-       r.in.access_mask = SEC_RIGHTS_MAXIMUM_ALLOWED;
+       r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
        r.in.rid = rid;
        r.out.user_handle = user_handle;
        status = dcerpc_samr_OpenUser(p, mem_ctx, &r);
@@ -1373,7 +1374,7 @@ static BOOL test_DeleteGroup_byname(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        }
 
        r.in.domain_handle = handle;
-       r.in.access_mask = SEC_RIGHTS_MAXIMUM_ALLOWED;
+       r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
        r.in.rid = rid;
        r.out.group_handle = &group_handle;
        status = dcerpc_samr_OpenGroup(p, mem_ctx, &r);
@@ -1413,7 +1414,7 @@ static BOOL test_DeleteAlias_byname(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        }
 
        r.in.domain_handle = domain_handle;
-       r.in.access_mask = SEC_RIGHTS_MAXIMUM_ALLOWED;
+       r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
        r.in.rid = rid;
        r.out.alias_handle = &alias_handle;
        status = dcerpc_samr_OpenAlias(p, mem_ctx, &r);
@@ -1469,7 +1470,7 @@ static BOOL test_CreateAlias(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        init_samr_String(&name, TEST_ALIASNAME);
        r.in.domain_handle = domain_handle;
        r.in.aliasname = &name;
-       r.in.access_mask = SEC_RIGHTS_MAXIMUM_ALLOWED;
+       r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
        r.out.alias_handle = alias_handle;
        r.out.rid = &rid;
 
@@ -1561,7 +1562,7 @@ static BOOL test_CreateUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 
        r.in.domain_handle = domain_handle;
        r.in.account_name = &name;
-       r.in.access_mask = SEC_RIGHTS_MAXIMUM_ALLOWED;
+       r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
        r.out.user_handle = user_handle;
        r.out.rid = &rid;
 
@@ -1710,7 +1711,7 @@ static BOOL test_CreateUser2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                r.in.domain_handle = handle;
                r.in.account_name = &name;
                r.in.acct_flags = acct_flags;
-               r.in.access_mask = SEC_RIGHTS_MAXIMUM_ALLOWED;
+               r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
                r.out.user_handle = &user_handle;
                r.out.access_granted = &access_granted;
                r.out.rid = &rid;
@@ -1977,7 +1978,7 @@ static BOOL test_OpenUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        printf("Testing OpenUser(%u)\n", rid);
 
        r.in.domain_handle = handle;
-       r.in.access_mask = SEC_RIGHTS_MAXIMUM_ALLOWED;
+       r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
        r.in.rid = rid;
        r.out.user_handle = &user_handle;
 
@@ -2025,7 +2026,7 @@ static BOOL test_OpenGroup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        printf("Testing OpenGroup(%u)\n", rid);
 
        r.in.domain_handle = handle;
-       r.in.access_mask = SEC_RIGHTS_MAXIMUM_ALLOWED;
+       r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
        r.in.rid = rid;
        r.out.group_handle = &group_handle;
 
@@ -2065,7 +2066,7 @@ static BOOL test_OpenAlias(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        printf("Testing OpenAlias(%u)\n", rid);
 
        r.in.domain_handle = handle;
-       r.in.access_mask = SEC_RIGHTS_MAXIMUM_ALLOWED;
+       r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
        r.in.rid = rid;
        r.out.alias_handle = &alias_handle;
 
@@ -2136,7 +2137,7 @@ static BOOL test_EnumDomainUsers(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        printf("Testing LookupNames\n");
        n.in.domain_handle = handle;
        n.in.num_names = r.out.sam->count;
-       n.in.names = talloc(mem_ctx, r.out.sam->count * sizeof(struct samr_String));
+       n.in.names = talloc_array_p(mem_ctx, struct samr_String, r.out.sam->count);
        for (i=0;i<r.out.sam->count;i++) {
                n.in.names[i] = r.out.sam->entries[i].name;
        }
@@ -2150,7 +2151,7 @@ static BOOL test_EnumDomainUsers(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        printf("Testing LookupRids\n");
        lr.in.domain_handle = handle;
        lr.in.num_rids = r.out.sam->count;
-       lr.in.rids = talloc(mem_ctx, r.out.sam->count * sizeof(uint32_t));
+       lr.in.rids = talloc_array_p(mem_ctx, uint32_t, r.out.sam->count);
        for (i=0;i<r.out.sam->count;i++) {
                lr.in.rids[i] = r.out.sam->entries[i].idx;
        }
@@ -2176,7 +2177,7 @@ static BOOL test_EnumDomainUsers_async(struct dcerpc_pipe *p, TALLOC_CTX *mem_ct
 #define ASYNC_COUNT 100
        struct rpc_request *req[ASYNC_COUNT];
 
-       if (lp_parm_int(-1, "torture", "dangerous") != 1) {
+       if (!lp_parm_bool(-1, "torture", "dangerous", False)) {
                printf("samr async test disabled - enable dangerous tests to use\n");
                return True;
        }
@@ -2562,7 +2563,7 @@ static BOOL test_GroupList(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                    !NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES))
                        break;
 
-               for (i=0; i<q1.out.sam->count; i++) {
+               for (i=0; i<q1.out.num_entries; i++) {
                        add_string_to_array(mem_ctx,
                                            q1.out.sam->entries[i].name.string,
                                            &names, &num_names);
@@ -2810,7 +2811,7 @@ static BOOL test_CreateDomainGroup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 
        r.in.domain_handle = domain_handle;
        r.in.name = &name;
-       r.in.access_mask = SEC_RIGHTS_MAXIMUM_ALLOWED;
+       r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
        r.out.group_handle = group_handle;
        r.out.rid = &rid;
 
@@ -2894,7 +2895,7 @@ static BOOL test_OpenDomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        printf("Testing OpenDomain\n");
 
        r.in.connect_handle = handle;
-       r.in.access_mask = SEC_RIGHTS_MAXIMUM_ALLOWED;
+       r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
        r.in.sid = sid;
        r.out.domain_handle = &domain_handle;
 
@@ -3060,7 +3061,7 @@ static BOOL test_Connect(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        printf("testing samr_Connect\n");
 
        r.in.system_name = 0;
-       r.in.access_mask = SEC_RIGHTS_MAXIMUM_ALLOWED;
+       r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
        r.out.connect_handle = &h;
 
        status = dcerpc_samr_Connect(p, mem_ctx, &r);
@@ -3075,7 +3076,7 @@ static BOOL test_Connect(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        printf("testing samr_Connect2\n");
 
        r2.in.system_name = NULL;
-       r2.in.access_mask = SEC_RIGHTS_MAXIMUM_ALLOWED;
+       r2.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
        r2.out.connect_handle = &h;
 
        status = dcerpc_samr_Connect2(p, mem_ctx, &r2);
@@ -3094,7 +3095,7 @@ static BOOL test_Connect(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 
        r3.in.system_name = NULL;
        r3.in.unknown = 0;
-       r3.in.access_mask = SEC_RIGHTS_MAXIMUM_ALLOWED;
+       r3.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
        r3.out.connect_handle = &h;
 
        status = dcerpc_samr_Connect3(p, mem_ctx, &r3);
@@ -3113,7 +3114,7 @@ static BOOL test_Connect(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 
        r4.in.system_name = "";
        r4.in.unknown = 0;
-       r4.in.access_mask = SEC_RIGHTS_MAXIMUM_ALLOWED;
+       r4.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
        r4.out.connect_handle = &h;
 
        status = dcerpc_samr_Connect4(p, mem_ctx, &r4);
@@ -3134,7 +3135,7 @@ static BOOL test_Connect(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        info.info1.unknown2 = 0;
 
        r5.in.system_name = "";
-       r5.in.access_mask = SEC_RIGHTS_MAXIMUM_ALLOWED;
+       r5.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
        r5.in.level = 1;
        r5.in.info = &info;
        r5.out.info = &info;