summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorGustav Johansson <gustajo@axis.com>2023-05-06 00:05:07 +0900
committerSteve French <stfrench@microsoft.com>2023-05-16 10:26:14 -0500
commite7b8b8ed9960bf699bf4029f482d9e869c094ed6 (patch)
treeb883d7b0f971e0a8c18daca1c1894fdb4d938f48 /fs
parent443d61d1fa9faa60ef925513d83742902390100f (diff)
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>
Diffstat (limited to 'fs')
-rw-r--r--fs/ksmbd/smb2misc.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/ksmbd/smb2misc.c b/fs/ksmbd/smb2misc.c
index fbdde426dd01..0ffe663b7590 100644
--- a/fs/ksmbd/smb2misc.c
+++ b/fs/ksmbd/smb2misc.c
@@ -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(