]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ksmbd: Use struct_size() helper in ksmbd_negotiate_smb_dialect()
authorGustavo A. R. Silva <gustavoars@kernel.org>
Mon, 18 Dec 2023 15:34:12 +0000 (00:34 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 23 Dec 2023 09:41:57 +0000 (10:41 +0100)
[ Upstream commit 5211cc8727ed9701b04976ab47602955e5641bda ]

Prefer struct_size() over open-coded versions.

Link: https://github.com/KSPP/linux/issues/160
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Reviewed-by: Kees Cook <keescook@chromium.org>
Acked-by: Namjae Jeon <linkinjeon@kernel.org>
Reviewed-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/ksmbd/smb_common.c

index 08d95e1ecc5ee2998b949208e6d1e267cac453b5..f7c907143834fc7e8f177a4bd61bc6ddcbd3153b 100644 (file)
@@ -266,7 +266,7 @@ static int ksmbd_negotiate_smb_dialect(void *buf)
                if (smb2_neg_size > smb_buf_length)
                        goto err_out;
 
-               if (smb2_neg_size + le16_to_cpu(req->DialectCount) * sizeof(__le16) >
+               if (struct_size(req, Dialects, le16_to_cpu(req->DialectCount)) >
                    smb_buf_length)
                        goto err_out;