]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3:winbindd: only call init_dc_connection_rpc() for NCACN_NP connections
authorStefan Metzmacher <metze@samba.org>
Thu, 25 Jun 2026 15:22:07 +0000 (17:22 +0200)
committerStefan Metzmacher <metze@samba.org>
Fri, 26 Jun 2026 16:10:29 +0000 (16:10 +0000)
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 <metze@samba.org>
Reviewed-by: Björn Jacke <bjacke@samba.org>
Autobuild-User(master): Stefan Metzmacher <metze@samba.org>
Autobuild-Date(master): Fri Jun 26 16:10:29 UTC 2026 on atb-devel-224

source3/winbindd/winbindd_cm.c

index 42c0ba034ab2716f4b645873c340d8c4c4380d04..81013fcb09988b3bb95846b0195a3987fba2c994 100644 (file)
@@ -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;
        }