ksmbd: smb2: Allow messages padded to 8byte boundary

clc length is now accepted to <= 8 less than length,
rather than < 8.

Solve issues on some of Axis's smb clients which send
messages where clc length is 8 bytes less than length.

The specific client was running kernel 4.19.217 with
smb dialect 3.0.2 on armv7l.

Cc: stable@vger.kernel.org
Signed-off-by: Gustav Johansson <gustajo@axis.com>
Acked-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
This commit is contained in:
Gustav Johansson 2023-05-06 00:05:07 +09:00 committed by Steve French
parent 443d61d1fa
commit e7b8b8ed99

View File

@ -416,8 +416,11 @@ int ksmbd_smb2_check_message(struct ksmbd_work *work)
/*
* Allow a message that padded to 8byte boundary.
* Linux 4.19.217 with smb 3.0.2 are sometimes
* sending messages where the cls_len is exactly
* 8 bytes less than len.
*/
if (clc_len < len && (len - clc_len) < 8)
if (clc_len < len && (len - clc_len) <= 8)
goto validate_credit;
pr_err_ratelimited(