From e62fdaf0f1fa08e82f54b72ce6ae4dabaac8e507 Mon Sep 17 00:00:00 2001 From: Hans Leidekker Date: Tue, 27 Oct 2009 10:03:36 +0100 Subject: [PATCH] wininet: Avoid accessing uninitialized memory in HttpSendRequestExW. Found by valgrind. --- dlls/wininet/http.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c index d8db8af0d3d..1426439c097 100644 --- a/dlls/wininet/http.c +++ b/dlls/wininet/http.c @@ -3338,8 +3338,16 @@ BOOL WINAPI HttpSendRequestExW(HINTERNET hRequest, req = &workRequest.u.HttpSendRequestW; if (lpBuffersIn) { - /* FIXME: this should use dwHeadersLength or may not be necessary at all */ - req->lpszHeader = heap_strdupW(lpBuffersIn->lpcszHeader); + DWORD size; + + if (lpBuffersIn->dwHeadersLength == ~0u) + size = (strlenW( lpBuffersIn->lpcszHeader ) + 1) * sizeof(WCHAR); + else + size = lpBuffersIn->dwHeadersLength * sizeof(WCHAR); + + req->lpszHeader = HeapAlloc( GetProcessHeap(), 0, size ); + memcpy( req->lpszHeader, lpBuffersIn->lpcszHeader, size ); + req->dwHeaderLength = lpBuffersIn->dwHeadersLength; req->lpOptional = lpBuffersIn->lpvBuffer; req->dwOptionalLength = lpBuffersIn->dwBufferLength; -- 2.11.4.GIT