diff mbox series

[SMB3] correct definitions for app instance open contexts

Message ID CAH2r5msNirMEVz=B8fmZ83r7AwsMcM6hd+vSFcsVSB_=mHWHsA@mail.gmail.com (mailing list archive)
State New, archived
Headers show
Series [SMB3] correct definitions for app instance open contexts | expand

Commit Message

Steve French May 1, 2023, 3:26 a.m. UTC
The name length was wrong for the structs:

         SMB2_CREATE_APP_INSTANCE_ID
         SMB2_CREATE_APP_INSTANCE_VERSION

See attached.  Also moves these definitions to common code (fs/smbfs_common)

Comments

Namjae Jeon May 2, 2023, 5:56 a.m. UTC | #1
2023-05-01 12:26 GMT+09:00, Steve French <smfrench@gmail.com>:
> The name length was wrong for the structs:
>
>          SMB2_CREATE_APP_INSTANCE_ID
>          SMB2_CREATE_APP_INSTANCE_VERSION
>
> See attached.  Also moves these definitions to common code
> (fs/smbfs_common)
Looks good to me!
Acked-by: Namjae Jeon <linkinjeon@kernel.org>

Thanks!
>
> --
> Thanks,
>
> Steve
>
diff mbox series

Patch

From 5f6ec40bb9c8b1f740818898102ed624abf6b856 Mon Sep 17 00:00:00 2001
From: Steve French <stfrench@microsoft.com>
Date: Sun, 30 Apr 2023 12:27:49 -0500
Subject: [PATCH] SMB3.1.1: correct definition for app_instance_id create
 contexts

The name lengths were incorrect for two create contexts.
     SMB2_CREATE_APP_INSTANCE_ID
     SMB2_CREATE_APP_INSTANCE_VERSION

Update the definitions for these two to match the protocol specs.

Signed-off-by: Steve French <stfrench@microsoft.com>
---
 fs/ksmbd/smb2pdu.h        | 16 ----------------
 fs/smbfs_common/smb2pdu.h | 20 ++++++++++++++++++++
 2 files changed, 20 insertions(+), 16 deletions(-)

diff --git a/fs/ksmbd/smb2pdu.h b/fs/ksmbd/smb2pdu.h
index 67dc552f2ef7..aca9cfc73caa 100644
--- a/fs/ksmbd/smb2pdu.h
+++ b/fs/ksmbd/smb2pdu.h
@@ -81,22 +81,6 @@  struct create_durable_reconn_v2_req {
 	__le32 Flags;
 } __packed;
 
-struct create_app_inst_id {
-	struct create_context ccontext;
-	__u8 Name[8];
-	__u8 Reserved[8];
-	__u8 AppInstanceId[16];
-} __packed;
-
-struct create_app_inst_id_vers {
-	struct create_context ccontext;
-	__u8 Name[8];
-	__u8 Reserved[2];
-	__u8 Padding[4];
-	__le64 AppInstanceVersionHigh;
-	__le64 AppInstanceVersionLow;
-} __packed;
-
 struct create_alloc_size_req {
 	struct create_context ccontext;
 	__u8   Name[8];
diff --git a/fs/smbfs_common/smb2pdu.h b/fs/smbfs_common/smb2pdu.h
index 3b43a51e6f7e..bae590eec871 100644
--- a/fs/smbfs_common/smb2pdu.h
+++ b/fs/smbfs_common/smb2pdu.h
@@ -1250,6 +1250,26 @@  struct create_disk_id_rsp {
 	__u8  Reserved[16];
 } __packed;
 
+/* See MS-SMB2 2.2.13.2.13 */
+struct create_app_inst_id {
+	struct create_context ccontext;
+	__u8 Name[16];
+	__le32 StructureSize; /* Must be 20 */
+	__u16 Reserved;
+	__u8 AppInstanceId[16];
+} __packed;
+
+/* See MS-SMB2 2.2.13.2.15 */
+struct create_app_inst_id_vers {
+	struct create_context ccontext;
+	__u8 Name[16];
+	__le32 StructureSize; /* Must be 24 */
+	__u16 Reserved;
+	__u32 Padding;
+	__le64 AppInstanceVersionHigh;
+	__le64 AppInstanceVersionLow;
+} __packed;
+
 /* See MS-SMB2 2.2.31 and 2.2.32 */
 struct smb2_ioctl_req {
 	struct smb2_hdr hdr;
-- 
2.34.1