From 23d1cab67b1c6f7d3cc4ead0d7a88ae809876001 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Thu, 25 Jun 2026 17:22:07 +0200 Subject: [PATCH] s3:winbindd: only call init_dc_connection_rpc() for NCACN_NP connections MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit As init_dc_connection_rpc() will return NT_STATUS_TRUSTED_DOMAIN_FAILURE if domain->conn.cli is NULL and this is the case when we have domain->conn.ignore_smb_disconnected as true. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14638 BUG: https://bugzilla.samba.org/show_bug.cgi?id=16067 BUG: https://bugzilla.samba.org/show_bug.cgi?id=16151 Signed-off-by: Stefan Metzmacher Reviewed-by: Björn Jacke Autobuild-User(master): Stefan Metzmacher Autobuild-Date(master): Fri Jun 26 16:10:29 UTC 2026 on atb-devel-224 --- source3/winbindd/winbindd_cm.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/source3/winbindd/winbindd_cm.c b/source3/winbindd/winbindd_cm.c index 42c0ba034ab..81013fcb099 100644 --- a/source3/winbindd/winbindd_cm.c +++ b/source3/winbindd/winbindd_cm.c @@ -3045,7 +3045,7 @@ static NTSTATUS cm_connect_lsa_tcp(struct winbindd_domain *domain, DEBUG(10,("cm_connect_lsa_tcp\n")); - status = init_dc_connection_rpc(domain, false); + status = init_dc_connection(domain, false); if (!NT_STATUS_IS_OK(status)) { return status; } @@ -3445,9 +3445,16 @@ static NTSTATUS cm_connect_netlogon_transport(struct winbindd_domain *domain, } } - result = init_dc_connection_rpc(domain, domain->rodc); - if (!NT_STATUS_IS_OK(result)) { - return result; + if (transport == NCACN_NP) { + result = init_dc_connection_rpc(domain, domain->rodc); + if (!NT_STATUS_IS_OK(result)) { + return result; + } + } else { + result = init_dc_connection(domain, domain->rodc); + if (!NT_STATUS_IS_OK(result)) { + return result; + } } conn = &domain->conn; @@ -3549,8 +3556,7 @@ NTSTATUS cm_connect_netlogon(struct winbindd_domain *domain, struct rpc_pipe_client **cli) { NTSTATUS status; - - status = init_dc_connection_rpc(domain, domain->rodc); + status = init_dc_connection(domain, domain->rodc); if (!NT_STATUS_IS_OK(status)) { return status; } -- 2.47.3