diff options
author | Steve French <sfrench@us.ibm.com> | 2006-06-05 01:27:37 -0400 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2006-06-05 01:27:37 -0400 |
commit | f64b23ae4aef9f69d71ea41529a188acd5ab4930 (patch) | |
tree | 7c8c0b06a98523c4fee98e12e621591a3ab69042 /fs/cifs/sess.c | |
parent | 9312f6754d4b2d3ce27c21b16fb92923ce92a411 (diff) |
[CIFS] NTLMv2 support part 2
Still need to fill in response structure and check that hash works
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/sess.c')
-rw-r--r-- | fs/cifs/sess.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/fs/cifs/sess.c b/fs/cifs/sess.c index 1fe9461c6dc..9ce628df29b 100644 --- a/fs/cifs/sess.c +++ b/fs/cifs/sess.c | |||
@@ -411,7 +411,11 @@ CIFS_SessSetup(unsigned int xid, struct cifsSesInfo *ses, int first_time, | |||
411 | else | 411 | else |
412 | ascii_ssetup_strings(&bcc_ptr, ses, nls_cp); | 412 | ascii_ssetup_strings(&bcc_ptr, ses, nls_cp); |
413 | } else if (type == NTLMv2) { | 413 | } else if (type == NTLMv2) { |
414 | char * v2_sess_key = kmalloc(V2_SESS_KEY_SIZE, GFP_KERNEL); | 414 | char * v2_sess_key = kmalloc(sizeof(struct ntlmv2_resp), |
415 | GFP_KERNEL); | ||
416 | |||
417 | /* BB FIXME change all users of v2_sess_key to | ||
418 | struct ntlmv2_resp */ | ||
415 | 419 | ||
416 | if(v2_sess_key == NULL) { | 420 | if(v2_sess_key == NULL) { |
417 | cifs_small_buf_release(smb_buf); | 421 | cifs_small_buf_release(smb_buf); |
@@ -425,7 +429,7 @@ CIFS_SessSetup(unsigned int xid, struct cifsSesInfo *ses, int first_time, | |||
425 | /* cpu_to_le16(LM2_SESS_KEY_SIZE); */ | 429 | /* cpu_to_le16(LM2_SESS_KEY_SIZE); */ |
426 | 430 | ||
427 | pSMB->req_no_secext.CaseSensitivePasswordLength = | 431 | pSMB->req_no_secext.CaseSensitivePasswordLength = |
428 | cpu_to_le16(V2_SESS_KEY_SIZE); | 432 | cpu_to_le16(sizeof(struct ntlmv2_resp)); |
429 | 433 | ||
430 | /* calculate session key */ | 434 | /* calculate session key */ |
431 | CalcNTLMv2_response(ses, v2_sess_key); | 435 | CalcNTLMv2_response(ses, v2_sess_key); |
@@ -438,8 +442,9 @@ CIFS_SessSetup(unsigned int xid, struct cifsSesInfo *ses, int first_time, | |||
438 | 442 | ||
439 | /* memcpy(bcc_ptr, (char *)ntlm_session_key,LM2_SESS_KEY_SIZE); | 443 | /* memcpy(bcc_ptr, (char *)ntlm_session_key,LM2_SESS_KEY_SIZE); |
440 | bcc_ptr += LM2_SESS_KEY_SIZE; */ | 444 | bcc_ptr += LM2_SESS_KEY_SIZE; */ |
441 | memcpy(bcc_ptr, (char *)v2_sess_key, V2_SESS_KEY_SIZE); | 445 | memcpy(bcc_ptr, (char *)v2_sess_key, sizeof(struct ntlmv2_resp)); |
442 | bcc_ptr += V2_SESS_KEY_SIZE; | 446 | bcc_ptr += sizeof(struct ntlmv2_resp); |
447 | kfree(v2_sess_key); | ||
443 | if(ses->capabilities & CAP_UNICODE) | 448 | if(ses->capabilities & CAP_UNICODE) |
444 | unicode_ssetup_strings(&bcc_ptr, ses, nls_cp); | 449 | unicode_ssetup_strings(&bcc_ptr, ses, nls_cp); |
445 | else | 450 | else |