Commit 90da8b74 authored by Jörg Höhle's avatar Jörg Höhle Committed by Alexandre Julliard

mciwave: Fix a leak when Open fails (valgrind).

parent ea27fd99
...@@ -465,7 +465,7 @@ static LRESULT WAVE_mciOpenFile(WINE_MCIWAVE* wmw, LPCWSTR filename) ...@@ -465,7 +465,7 @@ static LRESULT WAVE_mciOpenFile(WINE_MCIWAVE* wmw, LPCWSTR filename)
fn = HeapAlloc(GetProcessHeap(), 0, (lstrlenW(filename) + 1) * sizeof(WCHAR)); fn = HeapAlloc(GetProcessHeap(), 0, (lstrlenW(filename) + 1) * sizeof(WCHAR));
if (!fn) return MCIERR_OUT_OF_MEMORY; if (!fn) return MCIERR_OUT_OF_MEMORY;
strcpyW(fn, filename); strcpyW(fn, filename);
HeapFree(GetProcessHeap(), 0, (void*)wmw->lpFileName); HeapFree(GetProcessHeap(), 0, wmw->lpFileName);
wmw->lpFileName = fn; wmw->lpFileName = fn;
if (strlenW(filename) > 0) { if (strlenW(filename) > 0) {
...@@ -568,6 +568,8 @@ static LRESULT WAVE_mciOpen(MCIDEVICEID wDevID, DWORD dwFlags, LPMCI_WAVE_OPEN_P ...@@ -568,6 +568,8 @@ static LRESULT WAVE_mciOpen(MCIDEVICEID wDevID, DWORD dwFlags, LPMCI_WAVE_OPEN_P
if (wmw->hFile != 0) if (wmw->hFile != 0)
mmioClose(wmw->hFile, 0); mmioClose(wmw->hFile, 0);
wmw->hFile = 0; wmw->hFile = 0;
HeapFree(GetProcessHeap(), 0, wmw->lpFileName);
wmw->lpFileName = NULL;
} }
return dwRet; return dwRet;
} }
...@@ -680,7 +682,7 @@ static DWORD WAVE_mciClose(MCIDEVICEID wDevID, DWORD dwFlags, LPMCI_GENERIC_PARM ...@@ -680,7 +682,7 @@ static DWORD WAVE_mciClose(MCIDEVICEID wDevID, DWORD dwFlags, LPMCI_GENERIC_PARM
if (wmw->lpWaveFormat != &wmw->wfxRef) if (wmw->lpWaveFormat != &wmw->wfxRef)
HeapFree(GetProcessHeap(), 0, wmw->lpWaveFormat); HeapFree(GetProcessHeap(), 0, wmw->lpWaveFormat);
wmw->lpWaveFormat = &wmw->wfxRef; wmw->lpWaveFormat = &wmw->wfxRef;
HeapFree(GetProcessHeap(), 0, (void*)wmw->lpFileName); HeapFree(GetProcessHeap(), 0, wmw->lpFileName);
wmw->lpFileName = NULL; wmw->lpFileName = NULL;
if ((dwFlags & MCI_NOTIFY) && lpParms) { if ((dwFlags & MCI_NOTIFY) && lpParms) {
...@@ -1025,7 +1027,7 @@ static DWORD WAVE_mciRecord(MCIDEVICEID wDevID, DWORD_PTR dwFlags, DWORD_PTR pmt ...@@ -1025,7 +1027,7 @@ static DWORD WAVE_mciRecord(MCIDEVICEID wDevID, DWORD_PTR dwFlags, DWORD_PTR pmt
* we don't modify the wave part of an existing file (ie. we always erase an * we don't modify the wave part of an existing file (ie. we always erase an
* existing content, we don't overwrite) * existing content, we don't overwrite)
*/ */
HeapFree(GetProcessHeap(), 0, (void*)wmw->lpFileName); HeapFree(GetProcessHeap(), 0, wmw->lpFileName);
dwRet = create_tmp_file(&wmw->hFile, (WCHAR**)&wmw->lpFileName); dwRet = create_tmp_file(&wmw->hFile, (WCHAR**)&wmw->lpFileName);
if (dwRet != 0) return dwRet; if (dwRet != 0) return dwRet;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment