diff options
author | Steve French <sfrench@us.ibm.com> | 2006-06-03 00:57:13 +0200 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2006-06-03 00:57:13 +0200 |
commit | bdc4bf6e8ac8cc29c61c2f0dc61d9776ef9a8ed4 (patch) | |
tree | 60e8cd01fa1a5a8c5bc00c920db629232191ccf1 /fs/cifs/cifsencrypt.c | |
parent | [CIFS] Fix mapping of old SMB return code Invalid Net Name so it is (diff) | |
download | linux-bdc4bf6e8ac8cc29c61c2f0dc61d9776ef9a8ed4.tar.xz linux-bdc4bf6e8ac8cc29c61c2f0dc61d9776ef9a8ed4.zip |
[CIFS] Support for older servers which require plaintext passwords
disabled by default, but can be enabled via proc for servers which
require such support. Also includes support for setting security
flags for cifs. See fs/cifs/README
Signed-off-by: Steve French <sfrench@us.ibm.com>
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) int i; char password_with_pad[CIFS_ENCPWD_SIZE]; + if(ses->server == NULL) + return; + memset(password_with_pad, 0, CIFS_ENCPWD_SIZE); strncpy(password_with_pad, ses->password, CIFS_ENCPWD_SIZE); + if((ses->server->secMode & SECMODE_PW_ENCRYPT) == 0) + if(extended_security & CIFSSEC_MAY_PLNTXT) { + memcpy(lnm_session_key, password_with_pad, CIFS_ENCPWD_SIZE); + return; + } + /* calculate old style session key */ /* calling toupper is less broken than repeatedly calling nls_toupper would be since that will never |