diff mbox series

cifs: Fix endian types in struct rfc1002_session_packet

Message ID CAH2r5mu+P1n18+EgdzqB_FmcEWXoaEqacqa6osKHtb05B1bBbQ@mail.gmail.com (mailing list archive)
State New
Headers show
Series cifs: Fix endian types in struct rfc1002_session_packet | expand

Commit Message

Steve French Jan. 19, 2025, 7:21 p.m. UTC
> All fields in struct rfc1002_session_packet are in big endian. This is
    > because all NetBIOS packet headers are in big endian as opposite of SMB
    >structures which are in little endian.
    > Therefore use __be16 and __be32 types instead of __u16 and __u32 in
    >struct rfc1002_session_packet.
    >
    >Reported-by: kernel test robot <lkp@intel.com>

Do you have a link to the kernel bot reported by (email?)

Comments

Pali Rohár Jan. 19, 2025, 7:28 p.m. UTC | #1
On Sunday 19 January 2025 13:21:39 Steve French wrote:
>     > All fields in struct rfc1002_session_packet are in big endian. This is
>     > because all NetBIOS packet headers are in big endian as opposite of SMB
>     >structures which are in little endian.
>     > Therefore use __be16 and __be32 types instead of __u16 and __u32 in
>     >struct rfc1002_session_packet.
>     >
>     >Reported-by: kernel test robot <lkp@intel.com>
> 
> Do you have a link to the kernel bot reported by (email?)

I should have it somewhere in my mailbox. I if needed I can try to find it.

But robot reported this issue for my own branch (not the master one). So
I though that it is not important to mention exact link for some of my
change which was work-in-progress.

In any case, robot found the issue with incorrect endianity types, so I
wanted to give credits for this robot. Anyway, those type changes should
not change compiled code, just allows code analysis tool to diagnose
other issues.
diff mbox series

Patch

From bbd8ad0d8994d448aa12e9df5fe23e5847729909 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali@kernel.org>
Date: Wed, 25 Dec 2024 15:54:22 +0100
Subject: [PATCH 29/71] cifs: Fix endian types in struct rfc1002_session_packet
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

All fields in struct rfc1002_session_packet are in big endian. This is
because all NetBIOS packet headers are in big endian as opposite of SMB
structures which are in little endian.

Therefore use __be16 and __be32 types instead of __u16 and __u32 in
struct rfc1002_session_packet.

Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Pali Rohár <pali@kernel.org>
---
 fs/smb/client/rfc1002pdu.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/fs/smb/client/rfc1002pdu.h b/fs/smb/client/rfc1002pdu.h
index ae1d025da294..ac82c2f3a4a2 100644
--- a/fs/smb/client/rfc1002pdu.h
+++ b/fs/smb/client/rfc1002pdu.h
@@ -24,7 +24,7 @@ 
 struct rfc1002_session_packet {
 	__u8	type;
 	__u8	flags;
-	__u16	length;
+	__be16	length;
 	union {
 		struct {
 			__u8 called_len;
@@ -35,8 +35,8 @@  struct rfc1002_session_packet {
 			__u8 scope2; /* null */
 		} __attribute__((packed)) session_req;
 		struct {
-			__u32 retarget_ip_addr;
-			__u16 port;
+			__be32 retarget_ip_addr;
+			__be16 port;
 		} __attribute__((packed)) retarget_resp;
 		__u8 neg_ses_resp_error_code;
 		/* POSITIVE_SESSION_RESPONSE packet does not include trailer.
-- 
2.43.0