From 54abd2aa66069e6baf7769c496f46d9dba18db39 Mon Sep 17 00:00:00 2001 From: Gerald Carter Date: Fri, 30 Sep 2005 17:13:37 +0000 Subject: r10656: BIG merge from trunk. Features not copied over * \PIPE\unixinfo * winbindd's {group,alias}membership new functions * winbindd's lookupsids() functionality * swat (trunk changes to be reverted as per discussion with Deryck) (This used to be commit 939c3cb5d78e3a2236209b296aa8aba8bdce32d3) --- source3/nsswitch/winbindd_group.c | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) (limited to 'source3/nsswitch/winbindd_group.c') diff --git a/source3/nsswitch/winbindd_group.c b/source3/nsswitch/winbindd_group.c index 6261dfb616..c52ee2d960 100644 --- a/source3/nsswitch/winbindd_group.c +++ b/source3/nsswitch/winbindd_group.c @@ -1150,10 +1150,10 @@ enum winbindd_result winbindd_dual_getuserdomgroups(struct winbindd_domain *doma DOM_SID user_sid; NTSTATUS status; - int i, num_groups; - size_t bufsize; - ssize_t len; + char *sidstring; + size_t len; DOM_SID *groups; + int num_groups; /* Ensure null termination */ state->request.data.sid[sizeof(state->request.data.sid)-1]='\0'; @@ -1176,22 +1176,15 @@ enum winbindd_result winbindd_dual_getuserdomgroups(struct winbindd_domain *doma return WINBINDD_OK; } - len=bufsize=0; - state->response.extra_data = NULL; - - for (i=0; iresponse.extra_data, - &len, &bufsize, - "%s\n", sid_string_static(&groups[i])); - } - - if (state->response.extra_data == NULL) { - /* Hmmm. Allocation failed somewhere */ + if (!print_sidlist(NULL, groups, num_groups, &sidstring, &len)) { + DEBUG(0, ("malloc failed\n")); return WINBINDD_ERROR; } - state->response.data.num_entries = num_groups; + state->response.extra_data = sidstring; state->response.length += len+1; + state->response.data.num_entries = num_groups; return WINBINDD_OK; } + -- cgit