possibly fix the 15000 user problem
[sfrench/samba-autobuild/.git] / source3 / nsswitch / winbindd_ads.c
index 2206c5a36e2bbfd97dc678c13677a7cca713b5dd..22bad667c3c55abcb015ec21bef23aed06c6238b 100644 (file)
@@ -220,7 +220,7 @@ static NTSTATUS query_user_list(struct winbindd_domain *domain,
                goto done;
        }
 
                goto done;
        }
 
-       (*info) = talloc(mem_ctx, count * sizeof(**info));
+       (*info) = talloc_zero(mem_ctx, count * sizeof(**info));
        if (!*info) {
                status = NT_STATUS_NO_MEMORY;
                goto done;
        if (!*info) {
                status = NT_STATUS_NO_MEMORY;
                goto done;
@@ -308,7 +308,7 @@ static NTSTATUS enum_dom_groups(struct winbindd_domain *domain,
                goto done;
        }
 
                goto done;
        }
 
-       (*info) = talloc(mem_ctx, count * sizeof(**info));
+       (*info) = talloc_zero(mem_ctx, count * sizeof(**info));
        if (!*info) {
                status = NT_STATUS_NO_MEMORY;
                goto done;
        if (!*info) {
                status = NT_STATUS_NO_MEMORY;
                goto done;
@@ -628,7 +628,7 @@ static NTSTATUS lookup_usergroups(struct winbindd_domain *domain,
        }
 
        count = ads_pull_sids(ads, mem_ctx, msg, "tokenGroups", &sids) + 1;
        }
 
        count = ads_pull_sids(ads, mem_ctx, msg, "tokenGroups", &sids) + 1;
-       (*user_gids) = (uint32 *)talloc(mem_ctx, sizeof(uint32) * count);
+       (*user_gids) = (uint32 *)talloc_zero(mem_ctx, sizeof(uint32) * count);
        (*user_gids)[(*num_groups)++] = primary_group;
 
        for (i=1;i<count;i++) {
        (*user_gids)[(*num_groups)++] = primary_group;
 
        for (i=1;i<count;i++) {
@@ -690,9 +690,9 @@ static NTSTATUS lookup_groupmem(struct winbindd_domain *domain,
                goto done;
        }
 
                goto done;
        }
 
-       (*rid_mem) = talloc(mem_ctx, sizeof(uint32) * count);
-       (*name_types) = talloc(mem_ctx, sizeof(uint32) * count);
-       (*names) = talloc(mem_ctx, sizeof(char *) * count);
+       (*rid_mem) = talloc_zero(mem_ctx, sizeof(uint32) * count);
+       (*name_types) = talloc_zero(mem_ctx, sizeof(uint32) * count);
+       (*names) = talloc_zero(mem_ctx, sizeof(char *) * count);
 
        for (msg = ads_first_entry(ads, res); msg; msg = ads_next_entry(ads, msg)) {
                uint32 atype, rid;
 
        for (msg = ads_first_entry(ads, res); msg; msg = ads_next_entry(ads, msg)) {
                uint32 atype, rid;