Module: wine Branch: master Commit: 3b5411941d7762f70a6e08a569463dce1356cc33 URL: https://gitlab.winehq.org/wine/wine/-/commit/3b5411941d7762f70a6e08a569463dc...
Author: Davide Beatrici git@davidebeatrici.dev Date: Wed Jun 7 23:08:10 2023 +0200
mmdevapi: Handle CreateThread() failure in AudioClient's Start.
---
dlls/mmdevapi/client.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/dlls/mmdevapi/client.c b/dlls/mmdevapi/client.c index 03bfbabd536..bd861f8b890 100644 --- a/dlls/mmdevapi/client.c +++ b/dlls/mmdevapi/client.c @@ -408,8 +408,12 @@ HRESULT WINAPI client_Start(IAudioClient3 *iface) WINE_UNIX_CALL(start, ¶ms);
if (SUCCEEDED(params.result) && !This->timer_thread) { - This->timer_thread = CreateThread(NULL, 0, timer_loop_func, This, 0, NULL); - SetThreadPriority(This->timer_thread, THREAD_PRIORITY_TIME_CRITICAL); + if ((This->timer_thread = CreateThread(NULL, 0, timer_loop_func, This, 0, NULL))) + SetThreadPriority(This->timer_thread, THREAD_PRIORITY_TIME_CRITICAL); + else { + IAudioClient3_Stop(&This->IAudioClient3_iface); + params.result = E_FAIL; + } }
sessions_unlock();