diff options
author | Andrew Tridgell <tridge@samba.org> | 2002-04-11 14:30:31 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2002-04-11 14:30:31 +0000 |
commit | 560a51f46bab19b23aab72ca7e17017443346058 (patch) | |
tree | ea1a31fc92c92c9294e7a705a93cbdfbb2c4ce0d /source3 | |
parent | 5c0e682c4a2e8bb91911064c51bf4c690555cb33 (diff) | |
download | samba-560a51f46bab19b23aab72ca7e17017443346058.tar.gz samba-560a51f46bab19b23aab72ca7e17017443346058.tar.bz2 samba-560a51f46bab19b23aab72ca7e17017443346058.zip |
possibly fix the 15000 user problem
I think its caused by a rpc operation failing and us giving invalid
data back to the cache layer. Using talloc_zero() should solve this.
(This used to be commit dfa990170bb9a665ba48443258e2a87f50baa75c)
Diffstat (limited to 'source3')
-rw-r--r-- | source3/nsswitch/winbindd_ads.c | 12 | ||||
-rw-r--r-- | source3/nsswitch/winbindd_rpc.c | 4 |
2 files changed, 8 insertions, 8 deletions
diff --git a/source3/nsswitch/winbindd_ads.c b/source3/nsswitch/winbindd_ads.c index 2206c5a36e..22bad667c3 100644 --- a/source3/nsswitch/winbindd_ads.c +++ b/source3/nsswitch/winbindd_ads.c @@ -220,7 +220,7 @@ static NTSTATUS query_user_list(struct winbindd_domain *domain, 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; @@ -308,7 +308,7 @@ static NTSTATUS enum_dom_groups(struct winbindd_domain *domain, 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; @@ -628,7 +628,7 @@ static NTSTATUS lookup_usergroups(struct winbindd_domain *domain, } 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++) { @@ -690,9 +690,9 @@ static NTSTATUS lookup_groupmem(struct winbindd_domain *domain, 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; diff --git a/source3/nsswitch/winbindd_rpc.c b/source3/nsswitch/winbindd_rpc.c index 53c39b2f57..5af42ee041 100644 --- a/source3/nsswitch/winbindd_rpc.c +++ b/source3/nsswitch/winbindd_rpc.c @@ -447,8 +447,8 @@ static NTSTATUS lookup_groupmem(struct winbindd_domain *domain, #define MAX_LOOKUP_RIDS 900 - *names = talloc(mem_ctx, *num_names * sizeof(char *)); - *name_types = talloc(mem_ctx, *num_names * sizeof(uint32)); + *names = talloc_zero(mem_ctx, *num_names * sizeof(char *)); + *name_types = talloc_zero(mem_ctx, *num_names * sizeof(uint32)); for (i = 0; i < *num_names; i += MAX_LOOKUP_RIDS) { int num_lookup_rids = MIN(*num_names - i, MAX_LOOKUP_RIDS); |