From 6f44627b047674552ccaf61e666a3f4fc4b87cf7 Mon Sep 17 00:00:00 2001 From: Nigel Liang Date: Sat, 3 Nov 2007 18:24:49 -0700 Subject: [PATCH] wininet: Release object in HttpSendRequestExW before return on error. --- dlls/wininet/http.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c index 53d6fbac9e6..a316fa4b584 100644 --- a/dlls/wininet/http.c +++ b/dlls/wininet/http.c @@ -2121,7 +2121,7 @@ BOOL WINAPI HttpSendRequestExW(HINTERNET hRequest, LPINTERNET_BUFFERSW lpBuffersOut, DWORD dwFlags, DWORD_PTR dwContext) { - BOOL ret; + BOOL ret = FALSE; LPWININETHTTPREQW lpwhr; LPWININETHTTPSESSIONW lpwhs; LPWININETAPPINFOW hIC; @@ -2134,7 +2134,7 @@ BOOL WINAPI HttpSendRequestExW(HINTERNET hRequest, if (NULL == lpwhr || lpwhr->hdr.htype != WH_HHTTPREQ) { INTERNET_SetLastError(ERROR_INTERNET_INCORRECT_HANDLE_TYPE); - return FALSE; + goto lend; } lpwhs = lpwhr->lpHttpSession; @@ -2178,7 +2178,6 @@ BOOL WINAPI HttpSendRequestExW(HINTERNET hRequest, * This is from windows. */ INTERNET_SetLastError(ERROR_IO_PENDING); - ret = FALSE; } else { @@ -2189,8 +2188,11 @@ BOOL WINAPI HttpSendRequestExW(HINTERNET hRequest, else ret = HTTP_HttpSendRequestW(lpwhr, NULL, 0, NULL, 0, 0, FALSE); } - - WININET_Release(&lpwhr->hdr); + +lend: + if ( lpwhr ) + WININET_Release( &lpwhr->hdr ); + TRACE("<---\n"); return ret; }