shell32: Fix some memory leaks
Andrew Talbot
andrew.talbot at talbotville.com
Thu Oct 4 14:14:38 CDT 2007
Changelog:
shell32: Fix some memory leaks.
diff --git a/dlls/shell32/shelllink.c b/dlls/shell32/shelllink.c
index b6f4b02..7778b58 100644
--- a/dlls/shell32/shelllink.c
+++ b/dlls/shell32/shelllink.c
@@ -404,6 +404,7 @@ static BOOL StartLinkProcessor( LPCOLEST
LPWSTR buffer;
STARTUPINFOW si;
PROCESS_INFORMATION pi;
+ BOOL ret;
len = sizeof(szFormat) + lstrlenW( szLink ) * sizeof(WCHAR);
buffer = HeapAlloc( GetProcessHeap(), 0, len );
@@ -416,11 +417,18 @@ static BOOL StartLinkProcessor( LPCOLEST
memset(&si, 0, sizeof(si));
si.cb = sizeof(si);
- if (!CreateProcessW( NULL, buffer, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) return FALSE;
- CloseHandle( pi.hProcess );
- CloseHandle( pi.hThread );
- return TRUE;
+ ret = CreateProcessW( NULL, buffer, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi );
+
+ HeapFree( GetProcessHeap(), 0, buffer );
+
+ if (ret)
+ {
+ CloseHandle( pi.hProcess );
+ CloseHandle( pi.hThread );
+ }
+
+ return ret;
}
static HRESULT WINAPI IPersistFile_fnSave(IPersistFile* iface, LPCOLESTR pszFileName, BOOL fRemember)
More information about the wine-patches
mailing list