summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2003-01-13 08:53:54 +0000
committerAndrew Bartlett <abartlet@samba.org>2003-01-13 08:53:54 +0000
commit05f6c8dea105b34c6031fcd037d74eddc1eba869 (patch)
tree061a2978504490722a4811cede897137878c7e9d
parent9742f673fdedb7146a6a6e7dc842147e8b5e3069 (diff)
downloadsamba-05f6c8dea105b34c6031fcd037d74eddc1eba869.tar.gz
samba-05f6c8dea105b34c6031fcd037d74eddc1eba869.tar.bz2
samba-05f6c8dea105b34c6031fcd037d74eddc1eba869.zip
Don't force the DOS password into a 14 char space, as this would imply null
termination - the password will not be null terminated before hashing if len >= 14. related to debian bug #157432 Andrew Bartlett (This used to be commit c6535836f2e48903aa89a18c11cbb37576fb4a20)
-rw-r--r--source3/libsmb/smbencrypt.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/source3/libsmb/smbencrypt.c b/source3/libsmb/smbencrypt.c
index 06871104a4..a57a98e3ea 100644
--- a/source3/libsmb/smbencrypt.c
+++ b/source3/libsmb/smbencrypt.c
@@ -73,13 +73,14 @@ void E_md4hash(const char *passwd, uchar p16[16])
void E_deshash(const char *passwd, uchar p16[16])
{
- uchar dospwd[15]; /* Password must not be > 14 chars long. */
+ fstring dospwd;
ZERO_STRUCT(dospwd);
ZERO_STRUCTP(p16);
/* Password must be converted to DOS charset - null terminated, uppercase. */
push_ascii(dospwd, (const char *)passwd, sizeof(dospwd), STR_UPPER|STR_TERMINATE);
+ /* Only the fisrt 14 chars are considered, password need not be null terminated. */
E_P16(dospwd, p16);
ZERO_STRUCT(dospwd);