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)
committerSteve French <steve.french@primarydata.com>
Sun, 28 Jun 2015 03:26:00 +0000 (20:26 -0700)
[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>
fs/cifs/cifssmb.c

index f26ffbfc64d8b4eca26b8e8101f705043fc7a4a0..672ef35c9f73c59d1f4b566bec2f16b4c74e4a8f 100644 (file)
@@ -625,9 +625,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) {