ksmbd: Use struct_size() helper in ksmbd_negotiate_smb_dialect()
authorGustavo A. R. Silva <gustavoars@kernel.org>
Wed, 21 Jun 2023 21:29:22 +0000 (15:29 -0600)
committerSteve French <stfrench@microsoft.com>
Mon, 26 Jun 2023 05:07:04 +0000 (00:07 -0500)
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>
fs/smb/server/smb_common.c

index a7e8106..b51f431 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;