Erich E. Hoover : strmbase: Fix race condition on InputPin_EndOfStream between csRenderLock and filter.csFilter.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Aug 5 18:03:07 CDT 2014


Module: wine
Branch: master
Commit: a9325037b535eacd669cddb003f70c855d6a32ab
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=a9325037b535eacd669cddb003f70c855d6a32ab

Author: Erich E. Hoover <erich.e.hoover at gmail.com>
Date:   Thu Jul 17 10:37:37 2014 -0600

strmbase: Fix race condition on InputPin_EndOfStream between csRenderLock and filter.csFilter.

---

 dlls/strmbase/renderer.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/dlls/strmbase/renderer.c b/dlls/strmbase/renderer.c
index 9b9c225..99c9278 100644
--- a/dlls/strmbase/renderer.c
+++ b/dlls/strmbase/renderer.c
@@ -105,8 +105,8 @@ static HRESULT WINAPI BaseRenderer_InputPin_EndOfStream(IPin * iface)
 
     TRACE("(%p/%p)->()\n", This, pFilter);
 
-    EnterCriticalSection(&pFilter->filter.csFilter);
     EnterCriticalSection(&pFilter->csRenderLock);
+    EnterCriticalSection(&pFilter->filter.csFilter);
     hr = BaseInputPinImpl_EndOfStream(iface);
     EnterCriticalSection(This->pin.pCritSec);
     if (SUCCEEDED(hr))
@@ -117,8 +117,8 @@ static HRESULT WINAPI BaseRenderer_InputPin_EndOfStream(IPin * iface)
             hr = BaseRendererImpl_EndOfStream(pFilter);
     }
     LeaveCriticalSection(This->pin.pCritSec);
-    LeaveCriticalSection(&pFilter->csRenderLock);
     LeaveCriticalSection(&pFilter->filter.csFilter);
+    LeaveCriticalSection(&pFilter->csRenderLock);
     return hr;
 }
 




More information about the wine-cvs mailing list