diff options
author | jpaetzel <jpaetzel@FreeBSD.org> | 2017-06-15 23:14:04 +0000 |
---|---|---|
committer | jpaetzel <jpaetzel@FreeBSD.org> | 2017-06-15 23:14:04 +0000 |
commit | 9c0e0f4f06cb3bacce42b66f8a8c1c6b362ab9c7 (patch) | |
tree | 4696b8a01033dacda05046d452d31c4109be1422 /contrib/smbfs | |
parent | 922115b531f587da21bbfed6b12322e15115f5c8 (diff) | |
download | FreeBSD-src-9c0e0f4f06cb3bacce42b66f8a8c1c6b362ab9c7.zip FreeBSD-src-9c0e0f4f06cb3bacce42b66f8a8c1c6b362ab9c7.tar.gz |
MFC 319670
Fix SMBFS when saved passwords are greater than 18 characters
PR: 132302
Submitted by: dhorn2000@gmail.com guru@unixarea.de
Diffstat (limited to 'contrib/smbfs')
-rw-r--r-- | contrib/smbfs/lib/smb/subr.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/contrib/smbfs/lib/smb/subr.c b/contrib/smbfs/lib/smb/subr.c index cd65315..5c3e795 100644 --- a/contrib/smbfs/lib/smb/subr.c +++ b/contrib/smbfs/lib/smb/subr.c @@ -232,6 +232,8 @@ smb_simplecrypt(char *dst, const char *src) islower(ch) ? ('a' + (ch - 'a' + 13) % 26) : ch); ch ^= pos; pos += 13; + if (pos > 256) + pos -= 256; sprintf(dst, "%02x", ch); dst += 2; } @@ -262,6 +264,8 @@ smb_simpledecrypt(char *dst, const char *src) return EINVAL; ch ^= pos; pos += 13; + if (pos > 256) + pos -= 256; if (isascii(ch)) ch = (isupper(ch) ? ('A' + (ch - 'A' + 13) % 26) : islower(ch) ? ('a' + (ch - 'a' + 13) % 26) : ch); |