[PATCH] SMB3: update structures for new compression protocol definitions

Steve French smfrench at gmail.com
Sat Apr 10 01:19:57 UTC 2021


Protocol has been extended for additional compression headers.
See MS-SMB2 section 2.2.42

Signed-off-by: Steve French <stfrench at microsoft.com>
---
 fs/cifs/smb2pdu.h | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/fs/cifs/smb2pdu.h b/fs/cifs/smb2pdu.h
index d6cd6e6ff14d..6442dc1c292b 100644
--- a/fs/cifs/smb2pdu.h
+++ b/fs/cifs/smb2pdu.h
@@ -144,7 +144,7 @@ struct smb2_transform_hdr {
 } __packed;

 /* See MS-SMB2 2.2.42 */
-struct smb2_compression_transform_hdr {
+struct smb2_compression_transform_hdr_unchained {
  __le32 ProtocolId; /* 0xFC 'S' 'M' 'B' */
  __le32 OriginalCompressedSegmentSize;
  __le16 CompressionAlgorithm;
@@ -160,10 +160,17 @@ struct compression_payload_header {
  __le16 CompressionAlgorithm;
  __le16 Flags;
  __le32 Length; /* length of compressed playload including field
below if present */
- /* __le32 OriginalPayloadSize; */ /* optional */
+ /* __le32 OriginalPayloadSize; */ /* optional, present when LZNT1,
LZ77, LZ77+Huffman */
 } __packed;

 /* See MS-SMB2 2.2.42.2 */
+struct smb2_compression_transform_hdr_chained {
+ __le32 ProtocolId; /* 0xFC 'S' 'M' 'B' */
+ __le32 OriginalCompressedSegmentSize;
+ /* struct compression_payload_header[] */
+} __packed;
+
+/* See MS-SMB2 2.2.42.2.2 */
 struct compression_pattern_payload_v1 {
  __le16 Pattern;
  __le16 Reserved1;

-- 
Thanks,

Steve



More information about the samba-technical mailing list