Module: wine Branch: master Commit: d726cf881941afa61d6e5f976d0880be01d06919 URL: http://source.winehq.org/git/wine.git/?a=commit;h=d726cf881941afa61d6e5f976d...
Author: Jörg Höhle hoehle@users.sourceforge.net Date: Sat Jun 4 11:55:06 2011 +0200
winealsa: Properly allocate the WAVEFORMATEXTENSIBLE returned by GetMixFormat.
---
dlls/winealsa.drv/mmdevdrv.c | 12 ++++++------ 1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/dlls/winealsa.drv/mmdevdrv.c b/dlls/winealsa.drv/mmdevdrv.c index 1a6d58f..f49df77 100644 --- a/dlls/winealsa.drv/mmdevdrv.c +++ b/dlls/winealsa.drv/mmdevdrv.c @@ -1217,16 +1217,15 @@ static HRESULT WINAPI AudioClient_GetMixFormat(IAudioClient *iface,
if(!pwfx) return E_POINTER; + *pwfx = NULL;
- *pwfx = HeapAlloc(GetProcessHeap(), 0, sizeof(WAVEFORMATEXTENSIBLE)); - if(!*pwfx) + fmt = CoTaskMemAlloc(sizeof(WAVEFORMATEXTENSIBLE)); + if(!fmt) return E_OUTOFMEMORY;
- fmt = (WAVEFORMATEXTENSIBLE*)*pwfx; - formats = HeapAlloc(GetProcessHeap(), 0, snd_pcm_format_mask_sizeof()); if(!formats){ - HeapFree(GetProcessHeap(), 0, *pwfx); + CoTaskMemFree(fmt); return E_OUTOFMEMORY; }
@@ -1310,11 +1309,12 @@ static HRESULT WINAPI AudioClient_GetMixFormat(IAudioClient *iface, fmt->Format.cbSize = sizeof(WAVEFORMATEXTENSIBLE) - sizeof(WAVEFORMATEX);
dump_fmt((WAVEFORMATEX*)fmt); + *pwfx = (WAVEFORMATEX*)fmt;
exit: LeaveCriticalSection(&This->lock); if(FAILED(hr)) - HeapFree(GetProcessHeap(), 0, *pwfx); + CoTaskMemFree(fmt); HeapFree(GetProcessHeap(), 0, formats);
return hr;