Nikolay Sivov (@nsivov) commented about dlls/mmdevapi/client.c:
return E_INVALIDARG; }
- if (mode == AUDCLNT_SHAREMODE_SHARED) {
WAVEFORMATEX *mix_fmt;HRESULT hr;if (FAILED(hr = IAudioClient3_GetMixFormat(&client->IAudioClient3_iface, &mix_fmt)))return hr;if (fmt->nChannels != mix_fmt->nChannels || fmt->nSamplesPerSec != mix_fmt->nSamplesPerSec)return AUDCLNT_E_UNSUPPORTED_FORMAT;CoTaskMemFree(mix_fmt);
It should free on error path too.