diff options
Diffstat (limited to 'fs/cifs/cifsencrypt.c')
-rw-r--r-- | fs/cifs/cifsencrypt.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/fs/cifs/cifsencrypt.c b/fs/cifs/cifsencrypt.c index e11d8c6bb227..3ae964bbfdc3 100644 --- a/fs/cifs/cifsencrypt.c +++ b/fs/cifs/cifsencrypt.c | |||
@@ -271,9 +271,18 @@ void calc_lanman_hash(struct cifsSesInfo * ses, char * lnm_session_key) | |||
271 | int i; | 271 | int i; |
272 | char password_with_pad[CIFS_ENCPWD_SIZE]; | 272 | char password_with_pad[CIFS_ENCPWD_SIZE]; |
273 | 273 | ||
274 | if(ses->server == NULL) | ||
275 | return; | ||
276 | |||
274 | memset(password_with_pad, 0, CIFS_ENCPWD_SIZE); | 277 | memset(password_with_pad, 0, CIFS_ENCPWD_SIZE); |
275 | strncpy(password_with_pad, ses->password, CIFS_ENCPWD_SIZE); | 278 | strncpy(password_with_pad, ses->password, CIFS_ENCPWD_SIZE); |
276 | 279 | ||
280 | if((ses->server->secMode & SECMODE_PW_ENCRYPT) == 0) | ||
281 | if(extended_security & CIFSSEC_MAY_PLNTXT) { | ||
282 | memcpy(lnm_session_key, password_with_pad, CIFS_ENCPWD_SIZE); | ||
283 | return; | ||
284 | } | ||
285 | |||
277 | /* calculate old style session key */ | 286 | /* calculate old style session key */ |
278 | /* calling toupper is less broken than repeatedly | 287 | /* calling toupper is less broken than repeatedly |
279 | calling nls_toupper would be since that will never | 288 | calling nls_toupper would be since that will never |