summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2006-12-16 01:52:06 +0000
committerJeremy Allison <jra@samba.org>2006-12-16 01:52:06 +0000
commit84fa20bc1bea33425b06dbc43ca456bb945bf3a8 (patch)
tree5779cb9f076f46d2208002f022dbfda0992448eb
parent37151b7069d16b12aa7f5f9859642972b39d67e3 (diff)
downloadsamba-84fa20bc1bea33425b06dbc43ca456bb945bf3a8.tar.gz
samba-84fa20bc1bea33425b06dbc43ca456bb945bf3a8.tar.xz
samba-84fa20bc1bea33425b06dbc43ca456bb945bf3a8.zip
r20207: Fix a couple more places where extra_data was
being talloc'ed off the NULL context instead of being malloced. Jeremy.
-rw-r--r--source/nsswitch/winbindd_async.c4
-rw-r--r--source/nsswitch/winbindd_group.c9
2 files changed, 8 insertions, 5 deletions
diff --git a/source/nsswitch/winbindd_async.c b/source/nsswitch/winbindd_async.c
index 93dea6f48cb..3319fda4063 100644
--- a/source/nsswitch/winbindd_async.c
+++ b/source/nsswitch/winbindd_async.c
@@ -1135,13 +1135,13 @@ enum winbindd_result winbindd_dual_getsidaliases(struct winbindd_domain *domain,
}
- if (!print_sidlist(NULL, sids, num_sids, &sidstr, &len)) {
+ if (!print_sidlist(state->mem_ctx, sids, num_sids, &sidstr, &len)) {
DEBUG(0, ("Could not print_sidlist\n"));
state->response.extra_data.data = NULL;
return WINBINDD_ERROR;
}
- state->response.extra_data.data = sidstr;
+ state->response.extra_data.data = SMB_STRDUP(sidstr);
if (state->response.extra_data.data != NULL) {
DEBUG(10, ("aliases_list: %s\n",
diff --git a/source/nsswitch/winbindd_group.c b/source/nsswitch/winbindd_group.c
index deee07413c4..1b21352c860 100644
--- a/source/nsswitch/winbindd_group.c
+++ b/source/nsswitch/winbindd_group.c
@@ -1384,12 +1384,15 @@ enum winbindd_result winbindd_dual_getuserdomgroups(struct winbindd_domain *doma
return WINBINDD_OK;
}
- if (!print_sidlist(NULL, groups, num_groups, &sidstring, &len)) {
- DEBUG(0, ("malloc failed\n"));
+ if (!print_sidlist(state->mem_ctx, groups, num_groups, &sidstring, &len)) {
+ DEBUG(0, ("talloc failed\n"));
return WINBINDD_ERROR;
}
- state->response.extra_data.data = sidstring;
+ state->response.extra_data.data = SMB_STRDUP(sidstring);
+ if (!state->response.extra_data.data) {
+ return WINBINDD_ERROR;
+ }
state->response.length += len+1;
state->response.data.num_entries = num_groups;