client MUST ignore EncryptionKeyLength if CAP_EXTENDED_SECURITY is set
authorNoel Power <noel.power@suse.com>
Wed, 27 May 2015 08:22:10 +0000 (09:22 +0100)
committerJiri Slaby <jslaby@suse.cz>
Wed, 7 Oct 2015 07:24:57 +0000 (09:24 +0200)
commit f291095f340db986271e951e3891bb95624a93ea upstream.

[MS-SMB] 2.2.4.5.2.1 states:

"ChallengeLength (1 byte): When the CAP_EXTENDED_SECURITY bit is set,
 the server MUST set this value to zero and clients MUST ignore this
 value."

Signed-off-by: Noel Power <noel.power@suse.com>
Signed-off-by: Steve French <smfrench@gmail.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
fs/cifs/cifssmb.c

index 5f1f3285479ebc441304f3eb059ba744b110bb1d..ea938a8bf2403e756c7adc03d85192ce6b8c9f31 100644 (file)
@@ -629,9 +629,8 @@ CIFSSMBNegotiate(const unsigned int xid, struct cifs_ses *ses)
                server->negflavor = CIFS_NEGFLAVOR_UNENCAP;
                memcpy(ses->server->cryptkey, pSMBr->u.EncryptionKey,
                       CIFS_CRYPTO_KEY_SIZE);
-       } else if ((pSMBr->hdr.Flags2 & SMBFLG2_EXT_SEC ||
-                       server->capabilities & CAP_EXTENDED_SECURITY) &&
-                               (pSMBr->EncryptionKeyLength == 0)) {
+       } else if (pSMBr->hdr.Flags2 & SMBFLG2_EXT_SEC ||
+                       server->capabilities & CAP_EXTENDED_SECURITY) {
                server->negflavor = CIFS_NEGFLAVOR_EXTENDED;
                rc = decode_ext_sec_blob(ses, pSMBr);
        } else if (server->sec_mode & SECMODE_PW_ENCRYPT) {