r4088: Get medieval on our ass about malloc.... :-). Take control of all our allocation
[samba.git] / source / nsswitch / winbindd_rpc.c
index ba24749fbef07cd036c48a9e6580d14d6148815f..de7f2ff76fbec30178b2b055a630b2c347afc471 100644 (file)
@@ -98,8 +98,7 @@ static NTSTATUS query_user_list(struct winbindd_domain *domain,
 
                *num_entries += num_dom_users;
 
-               *info = talloc_realloc( mem_ctx, *info, 
-                       (*num_entries) * sizeof(WINBIND_USERINFO));
+               *info = TALLOC_REALLOC_ARRAY( mem_ctx, *info, WINBIND_USERINFO, *num_entries);
 
                if (!(*info)) {
                        result = NT_STATUS_NO_MEMORY;
@@ -192,8 +191,7 @@ static NTSTATUS enum_dom_groups(struct winbindd_domain *domain,
                        break;
                }
 
-               (*info) = talloc_realloc(mem_ctx, *info, 
-                                        sizeof(**info) * ((*num_entries) + count));
+               (*info) = TALLOC_REALLOC_ARRAY(mem_ctx, *info, struct acct_info, (*num_entries) + count);
                if (! *info) {
                        talloc_destroy(mem_ctx2);
                        cli_samr_close(hnd->cli, mem_ctx, &dom_pol);
@@ -255,8 +253,7 @@ static NTSTATUS enum_local_groups(struct winbindd_domain *domain,
                        break;
                }
 
-               (*info) = talloc_realloc(mem_ctx, *info, 
-                                        sizeof(**info) * ((*num_entries) + count));
+               (*info) = TALLOC_REALLOC_ARRAY(mem_ctx, *info, struct acct_info, (*num_entries) + count);
                if (! *info) {
                        talloc_destroy(mem_ctx2);
                        cli_samr_close(hnd->cli, mem_ctx, &dom_pol);
@@ -491,7 +488,7 @@ static NTSTATUS lookup_usergroups(struct winbindd_domain *domain,
                        
                *num_groups = user->num_groups;
                                
-               (*user_grpsids) = talloc(mem_ctx, sizeof(DOM_SID*) * (*num_groups));
+               (*user_grpsids) = TALLOC_ARRAY(mem_ctx, DOM_SID*, *num_groups);
                for (i=0;i<(*num_groups);i++) {
                        (*user_grpsids)[i] = rid_to_talloced_sid(domain, mem_ctx, user->gids[i].g_rid);
                }
@@ -543,7 +540,7 @@ static NTSTATUS lookup_usergroups(struct winbindd_domain *domain,
        if (!NT_STATUS_IS_OK(result) || (*num_groups) == 0)
                goto done;
 
-       (*user_grpsids) = talloc(mem_ctx, sizeof(DOM_SID*) * (*num_groups));
+       (*user_grpsids) = TALLOC_ARRAY(mem_ctx, DOM_SID *, *num_groups);
        if (!(*user_grpsids)) {
                result = NT_STATUS_NO_MEMORY;
                goto done;
@@ -643,9 +640,9 @@ static NTSTATUS lookup_groupmem(struct winbindd_domain *domain,
 
 #define MAX_LOOKUP_RIDS 900
 
-        *names = talloc_zero(mem_ctx, *num_names * sizeof(char *));
-        *name_types = talloc_zero(mem_ctx, *num_names * sizeof(uint32));
-        *sid_mem = talloc_zero(mem_ctx, *num_names * sizeof(DOM_SID *));
+        *names = TALLOC_ZERO_ARRAY(mem_ctx, char *, *num_names);
+        *name_types = TALLOC_ZERO_ARRAY(mem_ctx, uint32, *num_names);
+        *sid_mem = TALLOC_ZERO_ARRAY(mem_ctx, DOM_SID *, *num_names);
 
        for (j=0;j<(*num_names);j++) {
                (*sid_mem)[j] = rid_to_talloced_sid(domain, mem_ctx, (rid_mem)[j]);