Andrew Eikum : xaudio2: Protect access to submix voice during creation ( Coverity).
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Feb 11 09:59:46 CST 2016
Module: wine
Branch: master
Commit: 7bb885a3d3ac4fdc435fc79fc5632b6b9e70ffa7
URL: http://source.winehq.org/git/wine.git/?a=commit;h=7bb885a3d3ac4fdc435fc79fc5632b6b9e70ffa7
Author: Andrew Eikum <aeikum at codeweavers.com>
Date: Wed Feb 10 12:54:40 2016 -0600
xaudio2: Protect access to submix voice during creation (Coverity).
Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/xaudio2_7/xaudio_dll.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/dlls/xaudio2_7/xaudio_dll.c b/dlls/xaudio2_7/xaudio_dll.c
index 0c39354..503c974 100644
--- a/dlls/xaudio2_7/xaudio_dll.c
+++ b/dlls/xaudio2_7/xaudio_dll.c
@@ -1475,8 +1475,10 @@ static HRESULT WINAPI IXAudio2Impl_CreateSubmixVoice(IXAudio2 *iface,
EnterCriticalSection(&This->lock);
LIST_FOR_EACH_ENTRY(sub, &This->submix_voices, XA2SubmixImpl, entry){
+ EnterCriticalSection(&sub->lock);
if(!sub->in_use)
break;
+ LeaveCriticalSection(&sub->lock);
}
if(&sub->entry == &This->submix_voices){
@@ -1498,11 +1500,14 @@ static HRESULT WINAPI IXAudio2Impl_CreateSubmixVoice(IXAudio2 *iface,
InitializeCriticalSection(&sub->lock);
sub->lock.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": XA2SubmixImpl.lock");
+
+ EnterCriticalSection(&sub->lock);
}
sub->in_use = TRUE;
LeaveCriticalSection(&This->lock);
+ LeaveCriticalSection(&sub->lock);
#if XAUDIO2_VER == 0
*ppSubmixVoice = (IXAudio2SubmixVoice*)&sub->IXAudio20SubmixVoice_iface;
More information about the wine-cvs
mailing list