From: Shirish Pargaonkar <[email protected]>

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

 
Signed-off-by: Shirish Pargaonkar <[email protected]>
---
 fs/cifs/sess.c |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/fs/cifs/sess.c b/fs/cifs/sess.c
index af18a50..9148fd8 100644
--- a/fs/cifs/sess.c
+++ b/fs/cifs/sess.c
@@ -739,9 +739,6 @@ ssetup_ntlmssp_authenticate:
                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) {
@@ -756,11 +753,17 @@ ssetup_ntlmssp_authenticate:
                if (ses->tilen > 0) {
                        memcpy(bcc_ptr, ses->tiblob, ses->tilen);
                        bcc_ptr += ses->tilen;
+                       pSMB->req_no_secext.CaseSensitivePasswordLength =
+                               cpu_to_le16(sizeof(struct ntlmv2_resp) +
+                                               ses->tilen);
                        /* we never did allocate ses->domainName to free */
                        kfree(ses->tiblob);
                        ses->tiblob = NULL;
                        ses->tilen = 0;
-               }
+               } else
+                       pSMB->req_no_secext.CaseSensitivePasswordLength =
+                               cpu_to_le16(sizeof(struct ntlmv2_resp));
+
                if (ses->capabilities & CAP_UNICODE) {
                        if (iov[0].iov_len % 2) {
                                *bcc_ptr = 0;
-- 
1.6.0.2

--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to