1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-22 13:34:15 +03:00

s3:smbd multichannel: let a cross-node session binding NT_STATUS_REQUEST_NOT_ACCEPTED

This is better than NT_STATUS_USER_SESSION_DELETED, as it means the
client can keep it's session alive. Otherwise a windows client believes
the whole session is gone and all other channels are invalid.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Günther Deschner <gd@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
This commit is contained in:
Stefan Metzmacher 2023-12-22 21:50:57 +01:00
parent 8a3707e3ed
commit 475784d63e

View File

@ -754,8 +754,14 @@ static struct tevent_req *smbd_smb2_session_setup_send(TALLOC_CTX *mem_ctx,
if (NT_STATUS_EQUAL(status, NT_STATUS_BAD_LOGON_SESSION_STATE)) {
/*
* This comes from smb2srv_session_lookup_global().
* And it's a cross node/cross smbd session bind,
* which can't work in our architecture.
*
* Returning NT_STATUS_REQUEST_NOT_ACCEPTED is better
* than NT_STATUS_USER_SESSION_DELETED in order to
* avoid a completely new session.
*/
tevent_req_nterror(req, NT_STATUS_USER_SESSION_DELETED);
tevent_req_nterror(req, NT_STATUS_REQUEST_NOT_ACCEPTED);
return tevent_req_post(req, ev);
}