From 05f6c8dea105b34c6031fcd037d74eddc1eba869 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Mon, 13 Jan 2003 08:53:54 +0000 Subject: 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) --- source3/libsmb/smbencrypt.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source3') 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); -- cgit