Module: wine Branch: master Commit: dd5347ee6af6335e311624aa565837c873097d5d URL: http://source.winehq.org/git/wine.git/?a=commit;h=dd5347ee6af6335e311624aa56...
Author: Hans Leidekker hans@it.vu.nl Date: Sat Oct 20 21:15:18 2007 +0200
wininet: Properly clean up ftp sessions.
---
dlls/wininet/ftp.c | 10 ++++------ 1 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/dlls/wininet/ftp.c b/dlls/wininet/ftp.c index 26b319e..637d193 100644 --- a/dlls/wininet/ftp.c +++ b/dlls/wininet/ftp.c @@ -2006,22 +2006,20 @@ HINTERNET FTP_Connect(LPWININETAPPINFOW hIC, LPCWSTR lpszServerName, }
lerror: - if (!bSuccess && nsocket != -1) - closesocket(nsocket); + if (lpwfs) WININET_Release( &lpwfs->hdr );
- if (!bSuccess && lpwfs) + if (!bSuccess && handle) { - HeapFree(GetProcessHeap(), 0, lpwfs); + WININET_Release( &hIC->hdr ); WININET_FreeHandle( handle ); handle = NULL; - lpwfs = NULL; }
if (hIC->hdr.dwFlags & INTERNET_FLAG_ASYNC) { INTERNET_ASYNC_RESULT iar;
- iar.dwResult = (DWORD)lpwfs; + iar.dwResult = bSuccess ? (DWORD_PTR)lpwfs : 0; iar.dwError = bSuccess ? ERROR_SUCCESS : INTERNET_GetLastError(); SendAsyncCallback(&hIC->hdr, dwContext, INTERNET_STATUS_REQUEST_COMPLETE, &iar, sizeof(INTERNET_ASYNC_RESULT));