Skip to content

Commit

Permalink
ntlm authentication and signing - Correct response length for ntlmv2 …
Browse files Browse the repository at this point in the history
…authentication without extended security

Fix incorrect calculation of case sensitive response length in the
ntlmv2 (without extended security) response.

Signed-off-by: Shirish Pargaonkar <shirishpargaonkar@gmail.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
  • Loading branch information
Shirish Pargaonkar authored and Steve French committed Oct 6, 2010
1 parent 29e07c8 commit c9928f7
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions fs/cifs/sess.c
Original file line number Diff line number Diff line change
Expand Up @@ -739,9 +739,6 @@ CIFS_SessSetup(unsigned int xid, struct cifsSesInfo *ses,
pSMB->req_no_secext.CaseInsensitivePasswordLength = 0;
/* cpu_to_le16(LM2_SESS_KEY_SIZE); */

pSMB->req_no_secext.CaseSensitivePasswordLength =
cpu_to_le16(sizeof(struct ntlmv2_resp));

/* calculate session key */
rc = setup_ntlmv2_rsp(ses, v2_sess_key, nls_cp);
if (rc) {
Expand All @@ -753,6 +750,11 @@ CIFS_SessSetup(unsigned int xid, struct cifsSesInfo *ses,
sizeof(struct ntlmv2_resp));
bcc_ptr += sizeof(struct ntlmv2_resp);
kfree(v2_sess_key);
/* set case sensitive password length after tilen may get
* assigned, tilen is 0 otherwise.
*/
pSMB->req_no_secext.CaseSensitivePasswordLength =
cpu_to_le16(sizeof(struct ntlmv2_resp) + ses->tilen);
if (ses->tilen > 0) {
memcpy(bcc_ptr, ses->tiblob, ses->tilen);
bcc_ptr += ses->tilen;
Expand All @@ -761,6 +763,7 @@ CIFS_SessSetup(unsigned int xid, struct cifsSesInfo *ses,
ses->tiblob = NULL;
ses->tilen = 0;
}

if (ses->capabilities & CAP_UNICODE) {
if (iov[0].iov_len % 2) {
*bcc_ptr = 0;
Expand Down

0 comments on commit c9928f7

Please sign in to comment.