Module: wine Branch: master Commit: dd5347ee6af6335e311624aa565837c873097d5d URL: http://source.winehq.org/git/wine.git/?a=commit;h=dd5347ee6af6335e311624aa56... Author: Hans Leidekker <hans(a)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));