cifs: check if SMB2 PDU size has been padded and suppress the warning
[ Upstream commit e6c47dd0da1e3a484e778046fc10da0b20606a86 ] Some SMB2/3 servers, Win2016 but possibly others too, adds padding not only between PDUs in a compound but also to the final PDU. This padding extends the PDU to a multiple of 8 bytes. Check if the unexpected length looks like this might be the case and avoid triggering the log messages for : "SMB2 server sent bad RFC1001 len %d not %d\n" Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com> Signed-off-by: Steve French <stfrench@microsoft.com> Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
4890349d79
commit
d98ec8a9e2
1 changed files with 7 additions and 0 deletions
|
@ -184,6 +184,13 @@ smb2_check_message(char *buf, unsigned int length)
|
|||
if (clc_len == 4 + len + 1)
|
||||
return 0;
|
||||
|
||||
/*
|
||||
* Some windows servers (win2016) will pad also the final
|
||||
* PDU in a compound to 8 bytes.
|
||||
*/
|
||||
if (((clc_len + 7) & ~7) == len)
|
||||
return 0;
|
||||
|
||||
/*
|
||||
* MacOS server pads after SMB2.1 write response with 3 bytes
|
||||
* of junk. Other servers match RFC1001 len to actual
|
||||
|
|
Loading…
Add table
Reference in a new issue