ksmbd: use channel signingkey for binding SMB2 session setup
authorNamjae Jeon <namjae.jeon@samsung.com>
Tue, 27 Jul 2021 00:30:29 +0000 (09:30 +0900)
committerNamjae Jeon <namjae.jeon@samsung.com>
Tue, 27 Jul 2021 00:30:59 +0000 (09:30 +0900)
Windows client disconnect connection by wrong signed SMB2 session
setup response on SMB3 multichannel mode.

Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/ksmbd/smb2pdu.c

index 93e98ef..7f5ca47 100644 (file)
@@ -8150,7 +8150,8 @@ void smb3_set_sign_rsp(struct ksmbd_work *work)
                len = ALIGN(len, 8);
        }
 
-       if (le16_to_cpu(hdr->Command) == SMB2_SESSION_SETUP_HE) {
+       if (conn->binding == false &&
+           le16_to_cpu(hdr->Command) == SMB2_SESSION_SETUP_HE) {
                signing_key = work->sess->smb3signingkey;
        } else {
                chann = lookup_chann_list(work->sess, work->conn);