[SCM] Samba Shared Repository - branch master updated

Björn Jacke bjacke at samba.org
Wed May 11 18:07:02 UTC 2022


The branch, master has been updated
       via  be2e2044b8e s3: libsmbclient: Cope with SMB2 servers that return STATUS_USER_SESSION_DELETED on a SMB2_ECHO (SMB2_OP_KEEPALIVE) call with a NULL session.
      from  0b214d666a9 gitignore: Add .ropeproject for pylsp-rope plugin

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit be2e2044b8ef56112162a42ac19b3791c787916b
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Dec 11 15:06:40 2019 -0800

    s3: libsmbclient: Cope with SMB2 servers that return STATUS_USER_SESSION_DELETED on a SMB2_ECHO (SMB2_OP_KEEPALIVE) call with a NULL session.
    
    This is already tested by smb2.session.expire which
    shows that Windows and Samba servers don't need this,
    but some third party server are returning STATUS_USER_SESSION_DELETED
    with a NULL sessionid.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=13218
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Bjoern Jacke <bjacke at samba.org>
    
    Autobuild-User(master): Björn Jacke <bjacke at samba.org>
    Autobuild-Date(master): Wed May 11 18:06:42 UTC 2022 on sn-devel-184

-----------------------------------------------------------------------

Summary of changes:
 source3/libsmb/libsmb_server.c | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)


Changeset truncated at 500 lines:

diff --git a/source3/libsmb/libsmb_server.c b/source3/libsmb/libsmb_server.c
index 09d27868c0e..ce17e4fed09 100644
--- a/source3/libsmb/libsmb_server.c
+++ b/source3/libsmb/libsmb_server.c
@@ -61,14 +61,33 @@ SMBC_check_server(SMBCCTX * context,
 					1,
 					data_blob_const(data, sizeof(data)));
 		if (!NT_STATUS_IS_OK(status)) {
+			bool ok = false;
+			/*
+			 * Some SMB2 servers (not Samba or Windows)
+			 * check the session status on SMB2_ECHO and return
+			 * NT_STATUS_USER_SESSION_DELETED
+			 * if the session was not set. That's OK, they still
+			 * replied.
+			 * BUG: https://bugzilla.samba.org/show_bug.cgi?id=13218
+			 */
+			if (smbXcli_conn_protocol(server->cli->conn) >=
+					PROTOCOL_SMB2_02) {
+				if (NT_STATUS_EQUAL(status,
+					    NT_STATUS_USER_SESSION_DELETED)) {
+					ok = true;
+				}
+			}
 			/*
 			 * Some NetApp servers return
 			 * NT_STATUS_INVALID_PARAMETER.That's OK, they still
 			 * replied.
 			 * BUG: https://bugzilla.samba.org/show_bug.cgi?id=13007
 			 */
-			if (!NT_STATUS_EQUAL(status,
+			if (NT_STATUS_EQUAL(status,
 					NT_STATUS_INVALID_PARAMETER)) {
+				ok = true;
+			}
+			if (!ok) {
 				return 1;
 			}
 		}


-- 
Samba Shared Repository



More information about the samba-cvs mailing list