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

winealsa: Properly allocate the WAVEFORMATEXTENSIBLE returned by GetMixFormat.

parent c1920412
......@@ -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;
......
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