From: Michael Adam Date: Mon, 9 Mar 2015 14:15:37 +0000 (+0100) Subject: s3-winbind: Fix chached user group lookup of trusted domains. X-Git-Tag: samba-4.1.18~64 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6d0843d3ec711fc2beb34f320331497309419b98;p=thirdparty%2Fsamba.git s3-winbind: Fix chached user group lookup of trusted domains. If a user group lookup has aleady been done before with a machine account we did always return the incomplete information from the cache. This patch makes sure we return the correct group information from the netsamlogon cache. BUG: https://bugzilla.samba.org/show_bug.cgi?id=11143 Pair-Programmed-With: Andreas Schneider Signed-off-by: Michael Adam Signed-off-by: Andreas Schneider Reviewed-by: Volker Lendecke (cherry picked from commit f5d0204bfa1eb641fe7697613c1f773b6a7e65de) --- diff --git a/source3/winbindd/wb_lookupusergroups.c b/source3/winbindd/wb_lookupusergroups.c index aeffc178d9b..1bb70810172 100644 --- a/source3/winbindd/wb_lookupusergroups.c +++ b/source3/winbindd/wb_lookupusergroups.c @@ -37,6 +37,7 @@ struct tevent_req *wb_lookupusergroups_send(TALLOC_CTX *mem_ctx, { struct tevent_req *req, *subreq; struct wb_lookupusergroups_state *state; + NTSTATUS status; req = tevent_req_create(mem_ctx, &state, struct wb_lookupusergroups_state); @@ -45,6 +46,16 @@ struct tevent_req *wb_lookupusergroups_send(TALLOC_CTX *mem_ctx, } sid_copy(&state->sid, sid); + status = lookup_usergroups_cached(NULL, + state, + &state->sid, + &state->sids.num_sids, + &state->sids.sids); + if (NT_STATUS_IS_OK(status)) { + tevent_req_done(req); + return tevent_req_post(req, ev); + } + subreq = dcerpc_wbint_LookupUserGroups_send( state, ev, dom_child_handle(domain), &state->sid, &state->sids); if (tevent_req_nomem(subreq, req)) {