From 1df1b65c06dd7af3977ee27deb7dd3c347fd04e4 Mon Sep 17 00:00:00 2001 From: Shirish Pargaonkar Date: Mon, 4 Oct 2010 19:56:13 -0500 Subject: [PATCH] --- yaml --- r: 213414 b: refs/heads/master c: c9928f7040a6e5f39e028bea500e0fde910d4a96 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/cifs/sess.c | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 36aa91a0f8a0..cccbe2171d46 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 29e07c82a9e8acebbb38ecc22b0b5005a0a5d839 +refs/heads/master: c9928f7040a6e5f39e028bea500e0fde910d4a96 diff --git a/trunk/fs/cifs/sess.c b/trunk/fs/cifs/sess.c index af18a500f7e0..c926e6c7c0c6 100644 --- a/trunk/fs/cifs/sess.c +++ b/trunk/fs/cifs/sess.c @@ -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) { @@ -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; @@ -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;