diff options
Diffstat (limited to 'source3/smbd/process.c')
-rw-r--r-- | source3/smbd/process.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/source3/smbd/process.c b/source3/smbd/process.c index 9d845782ffe..4a27f2cebe4 100644 --- a/source3/smbd/process.c +++ b/source3/smbd/process.c @@ -3292,36 +3292,41 @@ NTSTATUS smbXsrv_connection_init_tables(struct smbXsrv_connection *conn, { NTSTATUS status; - set_Protocol(protocol); conn->protocol = protocol; if (protocol >= PROTOCOL_SMB2_02) { status = smb2srv_session_table_init(conn); if (!NT_STATUS_IS_OK(status)) { + conn->protocol = PROTOCOL_NONE; return status; } status = smb2srv_open_table_init(conn); if (!NT_STATUS_IS_OK(status)) { + conn->protocol = PROTOCOL_NONE; return status; } } else { status = smb1srv_session_table_init(conn); if (!NT_STATUS_IS_OK(status)) { + conn->protocol = PROTOCOL_NONE; return status; } status = smb1srv_tcon_table_init(conn); if (!NT_STATUS_IS_OK(status)) { + conn->protocol = PROTOCOL_NONE; return status; } status = smb1srv_open_table_init(conn); if (!NT_STATUS_IS_OK(status)) { + conn->protocol = PROTOCOL_NONE; return status; } } + set_Protocol(protocol); return NT_STATUS_OK; } |