Module: wine Branch: master Commit: d9229bd1c5df8ed471682f45bc2b57e2e268639d URL: http://source.winehq.org/git/wine.git/?a=commit;h=d9229bd1c5df8ed471682f45bc...
Author: Rob Shearman rob@codeweavers.com Date: Tue Mar 6 13:31:33 2007 +0000
secur32: NTLM - don't bother nul terminating the password string as nothing relies on it being nul terminated.
---
dlls/secur32/ntlm.c | 11 +++++------ 1 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/dlls/secur32/ntlm.c b/dlls/secur32/ntlm.c index 4f21917..a75b4b8 100644 --- a/dlls/secur32/ntlm.c +++ b/dlls/secur32/ntlm.c @@ -227,7 +227,7 @@ static SECURITY_STATUS SEC_ENTRY ntlm_AcquireCredentialsHandleW( helper->pwlen = WideCharToMultiByte(CP_UNIXCP, WC_NO_BEST_FIT_CHARS, auth_data->Password, auth_data->PasswordLength, NULL, 0, NULL, - NULL) + 1; + NULL);
helper->password = HeapAlloc(GetProcessHeap(), 0, helper->pwlen); @@ -235,7 +235,6 @@ static SECURITY_STATUS SEC_ENTRY ntlm_AcquireCredentialsHandleW( WideCharToMultiByte(CP_UNIXCP, WC_NO_BEST_FIT_CHARS, auth_data->Password, auth_data->PasswordLength, helper->password, helper->pwlen, NULL, NULL); - helper->password[helper->pwlen - 1] = '\0'; } }
@@ -507,11 +506,11 @@ static SECURITY_STATUS SEC_ENTRY ntlm_InitializeSecurityContextW( { lstrcpynA(buffer, "PW ", max_len-1); if((ret = encodeBase64((unsigned char*)helper->password, - helper->pwlen-1, buffer+3, + helper->pwlen, buffer+3, max_len-3, &buffer_len)) != SEC_E_OK) { TRACE("Deleting password!\n"); - memset(helper->password, 0, helper->pwlen-1); + memset(helper->password, 0, helper->pwlen); HeapFree(GetProcessHeap(), 0, helper->password); goto isc_end; } @@ -695,7 +694,7 @@ static SECURITY_STATUS SEC_ENTRY ntlm_InitializeSecurityContextW( helper->pwlen, unicode_password, passwd_lenW);
SECUR32_CreateNTLMv1SessionKey((PBYTE)unicode_password, - lstrlenW(unicode_password) * sizeof(SEC_WCHAR), helper->session_key); + passwd_lenW * sizeof(SEC_WCHAR), helper->session_key);
HeapFree(GetProcessHeap(), 0, unicode_password); } @@ -739,7 +738,7 @@ static SECURITY_STATUS SEC_ENTRY ntlm_InitializeSecurityContextW( { TRACE("Deleting password!\n"); if(helper->password) - memset(helper->password, 0, helper->pwlen-1); + memset(helper->password, 0, helper->pwlen); HeapFree(GetProcessHeap(), 0, helper->password); } isc_end: