mirror of
https://github.com/samba-team/samba.git
synced 2025-01-11 05:18:09 +03:00
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 <metze@samba.org> Bug: https://bugzilla.samba.org/show_bug.cgi?id=10458 Signed-off-by: Gregor Beck <gbeck@sernet.de> Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org>
This commit is contained in:
parent
33f10d06ba
commit
3413e64149
@ -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)
|
NTSTATUS _wbint_LookupSids(struct pipes_struct *p, struct wbint_LookupSids *r)
|
||||||
{
|
{
|
||||||
struct winbindd_domain *domain = wb_child_domain();
|
struct winbindd_domain *domain = wb_child_domain();
|
||||||
|
struct lsa_RefDomainList *domains = r->out.domains;
|
||||||
NTSTATUS status;
|
NTSTATUS status;
|
||||||
|
|
||||||
if (domain == NULL) {
|
if (domain == NULL) {
|
||||||
@ -87,7 +88,12 @@ NTSTATUS _wbint_LookupSids(struct pipes_struct *p, struct wbint_LookupSids *r)
|
|||||||
* done at the wbint RPC layer.
|
* done at the wbint RPC layer.
|
||||||
*/
|
*/
|
||||||
status = rpc_lookup_sids(p->mem_ctx, domain, r->in.sids,
|
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);
|
reset_cm_connection_on_error(domain, status);
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user