diff mbox series

ksmbd: don't need 8byte alignment for request length in ksmbd_check_message

Message ID 20211028231317.18522-1-linkinjeon@kernel.org (mailing list archive)
State New, archived
Headers show
Series ksmbd: don't need 8byte alignment for request length in ksmbd_check_message | expand

Commit Message

Namjae Jeon Oct. 28, 2021, 11:13 p.m. UTC
When validating request length in ksmbd_check_message, 8byte alignment
is not needed for compound request. It can cause wrong validation
of request length.

Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
---
 fs/ksmbd/smb2misc.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

Comments

Hyunchul Lee Oct. 28, 2021, 11:55 p.m. UTC | #1
Acked-by: Hyunchul Lee <hyc.lee@gmail.com>

2021년 10월 29일 (금) 오전 8:13, Namjae Jeon <linkinjeon@kernel.org>님이 작성:
>
> When validating request length in ksmbd_check_message, 8byte alignment
> is not needed for compound request. It can cause wrong validation
> of request length.
>
> Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
> ---
>  fs/ksmbd/smb2misc.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/fs/ksmbd/smb2misc.c b/fs/ksmbd/smb2misc.c
> index 2385622cc3c8..0239fa96926c 100644
> --- a/fs/ksmbd/smb2misc.c
> +++ b/fs/ksmbd/smb2misc.c
> @@ -353,12 +353,10 @@ int ksmbd_smb2_check_message(struct ksmbd_work *work)
>         __u32 clc_len;  /* calculated length */
>         __u32 len = get_rfc1002_len(pdu);
>
> -       if (le32_to_cpu(hdr->NextCommand) > 0) {
> +       if (le32_to_cpu(hdr->NextCommand) > 0)
>                 len = le32_to_cpu(hdr->NextCommand);
> -       } else if (work->next_smb2_rcv_hdr_off) {
> +       else if (work->next_smb2_rcv_hdr_off)
>                 len -= work->next_smb2_rcv_hdr_off;
> -               len = round_up(len, 8);
> -       }
>
>         if (check_smb2_hdr(hdr))
>                 return 1;
> --
> 2.25.1
>
diff mbox series

Patch

diff --git a/fs/ksmbd/smb2misc.c b/fs/ksmbd/smb2misc.c
index 2385622cc3c8..0239fa96926c 100644
--- a/fs/ksmbd/smb2misc.c
+++ b/fs/ksmbd/smb2misc.c
@@ -353,12 +353,10 @@  int ksmbd_smb2_check_message(struct ksmbd_work *work)
 	__u32 clc_len;  /* calculated length */
 	__u32 len = get_rfc1002_len(pdu);
 
-	if (le32_to_cpu(hdr->NextCommand) > 0) {
+	if (le32_to_cpu(hdr->NextCommand) > 0)
 		len = le32_to_cpu(hdr->NextCommand);
-	} else if (work->next_smb2_rcv_hdr_off) {
+	else if (work->next_smb2_rcv_hdr_off)
 		len -= work->next_smb2_rcv_hdr_off;
-		len = round_up(len, 8);
-	}
 
 	if (check_smb2_hdr(hdr))
 		return 1;