CIFS: Fix maximum SMB2 header size
authorPavel Shilovsky <pshilov@microsoft.com>
Thu, 24 Aug 2017 22:16:40 +0000 (15:16 -0700)
committerSteve French <smfrench@gmail.com>
Wed, 30 Aug 2017 19:42:30 +0000 (14:42 -0500)
Currently the maximum size of SMB2/3 header is set incorrectly which
leads to hanging of directory listing operations on encrypted SMB3
connections. Fix this by setting the maximum size to 170 bytes that
is calculated as RFC1002 length field size (4) + transform header
size (52) + SMB2 header size (64) + create response size (56).

Cc: <stable@vger.kernel.org>
Signed-off-by: Pavel Shilovsky <pshilov@microsoft.com>
Signed-off-by: Steve French <smfrench@gmail.com>
Acked-by: Sachin Prabhu <sprabhu@redhat.com>
fs/cifs/smb2pdu.h

index 18700fd25a0b3f6ceebce14d59716dc4cf2d3cb0..2826882c81d14f138b393824fac9c9091311cd1f 100644 (file)
@@ -84,8 +84,8 @@
 
 #define NUMBER_OF_SMB2_COMMANDS        0x0013
 
-/* BB FIXME - analyze following length BB */
-#define MAX_SMB2_HDR_SIZE 0x78 /* 4 len + 64 hdr + (2*24 wct) + 2 bct + 2 pad */
+/* 4 len + 52 transform hdr + 64 hdr + 56 create rsp */
+#define MAX_SMB2_HDR_SIZE 0x00b0
 
 #define SMB2_PROTO_NUMBER cpu_to_le32(0x424d53fe)
 #define SMB2_TRANSFORM_PROTO_NUM cpu_to_le32(0x424d53fd)