From: "Erich E. Hoover" Subject: [PATCH 3/6] strmbase: Fix race condition on InputPin_EndOfStream between csRenderLock and filter.csFilter. Message-Id: Date: Wed, 30 Jul 2014 19:47:17 -0600 csRenderLock should be locked before filter.csFilter to avoid deadlocks. From ae8010967418ab751cf33b68fe76911c15971d45 Mon Sep 17 00:00:00 2001 From: "Erich E. Hoover" Date: Thu, 17 Jul 2014 10:37:37 -0600 Subject: 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; } -- 1.7.9.5