SMB3: Add support for multidialect negotiate (SMB2.1 and later)
authorSteve French <smfrench@gmail.com>
Sun, 17 Sep 2017 15:41:35 +0000 (10:41 -0500)
committerSteve French <smfrench@gmail.com>
Mon, 18 Sep 2017 04:10:48 +0000 (23:10 -0500)
commit9764c02fcbad40001fd3f63558d918e4d519bb75
tree3e1634f695c3473d9fa6b9b4537da00a95be8d62
parentec11653b531099ddc08a8c7eb495ab83cae84e19
SMB3: Add support for multidialect negotiate (SMB2.1 and later)

With the need to discourage use of less secure dialect, SMB1 (CIFS),
we temporarily upgraded the dialect to SMB3 in 4.13, but since there
are various servers which only support SMB2.1 (2.1 is more secure
than CIFS/SMB1) but not optimal for a default dialect - add support
for multidialect negotiation.  cifs.ko will now request SMB2.1
or later (ie SMB2.1 or SMB3.0, SMB3.02) and the server will
pick the latest most secure one it can support.

In addition since we are sending multidialect negotiate, add
support for secure negotiate to validate that a man in the
middle didn't downgrade us.

Signed-off-by: Steve French <smfrench@gmail.com>
Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
CC: Stable <stable@vger.kernel.org> # 4.13+
fs/cifs/cifsglob.h
fs/cifs/connect.c
fs/cifs/smb2ops.c
fs/cifs/smb2pdu.c
fs/cifs/smb2pdu.h