From e7e0fc5c0044c36813dc0ce8fe5cf711772c9bd4 Mon Sep 17 00:00:00 2001 From: Gerald Carter Date: Fri, 24 Mar 2006 22:04:16 +0000 Subject: [PATCH] r14698: Make sure we expand our own local groups and not just the BUILTIN group when calling winbindd_getgroups. $ id foo uid=502(foo) gid=100(users) groups=100(users),10007(RHEL4\staff), 10001(BUILTIN\users) --- source/nsswitch/winbindd_async.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/source/nsswitch/winbindd_async.c b/source/nsswitch/winbindd_async.c index 1581b7c2720..543dc884709 100644 --- a/source/nsswitch/winbindd_async.c +++ b/source/nsswitch/winbindd_async.c @@ -956,6 +956,7 @@ struct gettoken_state { TALLOC_CTX *mem_ctx; DOM_SID user_sid; struct winbindd_domain *alias_domain; + struct winbindd_domain *local_alias_domain; struct winbindd_domain *builtin_domain; DOM_SID *sids; size_t num_sids; @@ -990,6 +991,7 @@ void winbindd_gettoken_async(TALLOC_CTX *mem_ctx, const DOM_SID *user_sid, state->mem_ctx = mem_ctx; sid_copy(&state->user_sid, user_sid); state->alias_domain = find_our_domain(); + state->local_alias_domain = find_domain_from_name( get_global_sam_name() ); state->builtin_domain = find_builtin_domain(); state->cont = cont; state->private_data = private_data; @@ -1081,9 +1083,19 @@ static void gettoken_recvaliases(void *private_data, BOOL success, add_sid_to_array(state->mem_ctx, &aliases[i], &state->sids, &state->num_sids); + if (state->local_alias_domain != NULL) { + struct winbindd_domain *local_domain = state->local_alias_domain; + DEBUG(10, ("Expanding our own local groups\n")); + state->local_alias_domain = NULL; + winbindd_getsidaliases_async(local_domain, state->mem_ctx, + state->sids, state->num_sids, + gettoken_recvaliases, state); + return; + } + if (state->builtin_domain != NULL) { struct winbindd_domain *builtin_domain = state->builtin_domain; - DEBUG(10, ("Expanding our own local groups\n")); + DEBUG(10, ("Expanding our own BUILTIN groups\n")); state->builtin_domain = NULL; winbindd_getsidaliases_async(builtin_domain, state->mem_ctx, state->sids, state->num_sids, -- 2.11.4.GIT