From 64bb9894f1189d919a57977ede79579769bd048e Mon Sep 17 00:00:00 2001 From: Gregor Beck Date: Thu, 20 Feb 2014 13:14:31 +0100 Subject: [PATCH] s3:winbindd: fix _wbint_LookupSids() on error We need to make sure that r->out.domains remains valid, otherwise we're not able to marshall the response. Note that wbint_LookupSids() has [out,ref] lsa_RefDomainList *domains, while lsa_LookupSids() has [out,ref] lsa_RefDomainList **domains. Pair-Programmed-With: Stefan Metzmacher Bug: https://bugzilla.samba.org/show_bug.cgi?id=10458 Signed-off-by: Gregor Beck Signed-off-by: Stefan Metzmacher Reviewed-by: Andreas Schneider (cherry picked from commit 3413e64149702136429d7b5acaa7a52c49abf564) --- source3/winbindd/winbindd_dual_srv.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/source3/winbindd/winbindd_dual_srv.c b/source3/winbindd/winbindd_dual_srv.c index e23d0487b62..b8736555791 100644 --- a/source3/winbindd/winbindd_dual_srv.c +++ b/source3/winbindd/winbindd_dual_srv.c @@ -74,6 +74,7 @@ NTSTATUS _wbint_LookupSid(struct pipes_struct *p, struct wbint_LookupSid *r) NTSTATUS _wbint_LookupSids(struct pipes_struct *p, struct wbint_LookupSids *r) { struct winbindd_domain *domain = wb_child_domain(); + struct lsa_RefDomainList *domains = r->out.domains; NTSTATUS status; if (domain == NULL) { @@ -87,7 +88,12 @@ NTSTATUS _wbint_LookupSids(struct pipes_struct *p, struct wbint_LookupSids *r) * done at the wbint RPC layer. */ status = rpc_lookup_sids(p->mem_ctx, domain, r->in.sids, - &r->out.domains, &r->out.names); + &domains, &r->out.names); + + if (domains != NULL) { + r->out.domains = domains; + } + reset_cm_connection_on_error(domain, status); return status; } -- 2.11.4.GIT