summaryrefslogtreecommitdiffstats
path: root/fs/ksmbd
diff options
context:
space:
mode:
authorNamjae Jeon <namjae.jeon@samsung.com>2021-07-27 09:30:29 +0900
committerNamjae Jeon <namjae.jeon@samsung.com>2021-07-27 09:30:59 +0900
commit08bdbc6ef46ad522a24dc6b8e01c039cb0c7e761 (patch)
tree3d01a5678857aa4f4a59cda9d4f45e3a1ab4922c /fs/ksmbd
parent9fb8fac08f6670c9bba70d6c616ad84dd7a45528 (diff)
downloadlinux-08bdbc6ef46ad522a24dc6b8e01c039cb0c7e761.tar.gz
linux-08bdbc6ef46ad522a24dc6b8e01c039cb0c7e761.tar.xz
ksmbd: use channel signingkey for binding SMB2 session setup
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>
Diffstat (limited to 'fs/ksmbd')
-rw-r--r--fs/ksmbd/smb2pdu.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/ksmbd/smb2pdu.c b/fs/ksmbd/smb2pdu.c
index 93e98ef94c73..7f5ca471b306 100644
--- a/fs/ksmbd/smb2pdu.c
+++ b/fs/ksmbd/smb2pdu.c
@@ -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);