Removed strmbase/quartz locking fix patches (accepted upstream).

This commit is contained in:
Erich E. Hoover 2014-08-05 17:28:27 -06:00
parent e08596a770
commit 9b6f3ef459
10 changed files with 2 additions and 214 deletions

View File

@ -21,7 +21,6 @@ Wine-Compholio contains fixes for the following Wine bugs:
* Add support for extra large and jumbo icon lists in shell32 ([Wine Bug #24721](http://bugs.winehq.org/show_bug.cgi?id=24721 "Explorer++ crashes when choosing to view large icons or extra large icons"))
* Allow special characters in pipe names ([Wine Bug #28995](http://bugs.winehq.org/show_bug.cgi?id=28995 "Unable to use named pipes with \">\" character in the name"))
* Fix for ConnectNamedPort return value in overlapped mode ([Wine Bug #16550](http://bugs.winehq.org/show_bug.cgi?id=16550 "ConnectNamedPort should never return OK in overlapped mode (affects chromium ui_tests.exe)"))
* Fix race conditions and deadlocks in strmbase/quartz ([Wine Bug #31566](http://bugs.winehq.org/show_bug.cgi?id=31566 "Fallout 3: regression causes block at critical section when radio is enabled"))
* GetSecurityInfo returns NULL DACL for process object ([Wine Bug #15980](http://bugs.winehq.org/show_bug.cgi?id=15980 "Rhapsody 2 crashes on startup (GetSecurityInfo returns NULL DACL for process object)"))
* Implement a Microsoft Yahei replacement font ([Wine Bug #13829](http://bugs.winehq.org/show_bug.cgi?id=13829 "Wine does not have CJK fonts"))
* Implement an Arial replacement font ([Wine Bug #32323](http://bugs.winehq.org/show_bug.cgi?id=32323 "Netflix (Silverlight 4.x) and several .NET Framework 3.x/4.0 WPF apps require either Arial or Verdana to be installed"))

3
debian/changelog vendored
View File

@ -17,7 +17,8 @@ wine-compholio (1.7.24) UNRELEASED; urgency=low
* Added patch to use manual redirection for RunDLL_CallEntry16.
* Added patch to set ldr.EntryPoint for main executable.
* Removed patch to create directories (accepted upstream).
-- Erich E. Hoover <erich.e.hoover@gmail.com> Wed, 30 Jul 2014 17:40:14 -0600
* Removed strmbase/quartz locking fix patches (accepted upstream).
-- Erich E. Hoover <erich.e.hoover@gmail.com> Tue, 05 Aug 2014 17:28:04 -0600
wine-compholio (1.7.23) unstable; urgency=low
* Rewrite of patch system to simplify maintaining large patchsets.

View File

@ -33,7 +33,6 @@ PATCHLIST := Miscellaneous.ok \
shell32-RunDLL_CallEntry16.ok \
shell32-SHCreateSessionKey.ok \
shlwapi-UrlCombine.ok \
strmbase-Lock_Race_Conditions.ok \
user32-GetSystemMetrics.ok \
user32-GetTipText.ok \
wineboot-HKEY_DYN_DATA.ok \
@ -594,29 +593,6 @@ shlwapi-UrlCombine.ok:
echo '+ { "shlwapi-UrlCombine", "Sebastian Lackner", "Workaround for broken implementation of shlwapi url functions." },'; \
) > shlwapi-UrlCombine.ok
# Patchset strmbase-Lock_Race_Conditions
# |
# | Included patches:
# | * Fix possible race conditions in strmbase/quartz. [by Erich E. Hoover]
# |
# | This patchset fixes the following Wine bugs:
# | * [#31566] Fallout 3: regression causes block at critical section when radio is enabled
# |
# | Modified files:
# | * dlls/quartz/dsoundrender.c, dlls/quartz/videorenderer.c, dlls/strmbase/renderer.c
# |
.INTERMEDIATE: strmbase-Lock_Race_Conditions.ok
strmbase-Lock_Race_Conditions.ok:
$(PATCH) < strmbase-Lock_Race_Conditions/0001-strmbase-Fix-race-condition-on-InputPin_BeginFlush-b.patch
$(PATCH) < strmbase-Lock_Race_Conditions/0002-strmbase-Fix-race-condition-on-InputPin_EndFlush-bet.patch
$(PATCH) < strmbase-Lock_Race_Conditions/0003-strmbase-Fix-race-condition-on-InputPin_EndOfStream-.patch
$(PATCH) < strmbase-Lock_Race_Conditions/0004-quartz-Fix-race-condition-on-EndOfStream-between-csR.patch
$(PATCH) < strmbase-Lock_Race_Conditions/0005-quartz-Fix-race-condition-on-EndFlush-between-csRend.patch
$(PATCH) < strmbase-Lock_Race_Conditions/0006-quartz-Fix-race-condition-between-EndOfStream-and-Pa.patch
@( \
echo '+ { "strmbase-Lock_Race_Conditions", "Erich E. Hoover", "Fix possible race conditions in strmbase/quartz." },'; \
) > strmbase-Lock_Race_Conditions.ok
# Patchset user32-GetSystemMetrics
# |
# | Included patches:

View File

@ -1,27 +0,0 @@
From b089b250846590430d7908f2cff86ba40f40a696 Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
Date: Thu, 17 Jul 2014 10:28:42 -0600
Subject: strmbase: Fix race condition on InputPin_BeginFlush between
csRenderLock and filter.csFilter.
---
dlls/strmbase/renderer.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/strmbase/renderer.c b/dlls/strmbase/renderer.c
index bb91236..fb0902e 100644
--- a/dlls/strmbase/renderer.c
+++ b/dlls/strmbase/renderer.c
@@ -130,8 +130,8 @@ static HRESULT WINAPI BaseRenderer_InputPin_BeginFlush(IPin * iface)
TRACE("(%p/%p)->()\n", This, iface);
- EnterCriticalSection(&pFilter->filter.csFilter);
EnterCriticalSection(&pFilter->csRenderLock);
+ EnterCriticalSection(&pFilter->filter.csFilter);
EnterCriticalSection(This->pin.pCritSec);
hr = BaseInputPinImpl_BeginFlush(iface);
if (SUCCEEDED(hr))
--
1.7.9.5

View File

@ -1,37 +0,0 @@
From 9941d6cd8ac96f5f90d3a93257acb9bee8181ba6 Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
Date: Thu, 17 Jul 2014 10:35:43 -0600
Subject: strmbase: Fix race condition on InputPin_EndFlush 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 fb0902e..d175fa5 100644
--- a/dlls/strmbase/renderer.c
+++ b/dlls/strmbase/renderer.c
@@ -155,8 +155,8 @@ static HRESULT WINAPI BaseRenderer_InputPin_EndFlush(IPin * iface)
TRACE("(%p/%p)->()\n", This, pFilter);
- EnterCriticalSection(&pFilter->filter.csFilter);
EnterCriticalSection(&pFilter->csRenderLock);
+ EnterCriticalSection(&pFilter->filter.csFilter);
EnterCriticalSection(This->pin.pCritSec);
hr = BaseInputPinImpl_EndFlush(iface);
if (SUCCEEDED(hr))
@@ -167,8 +167,8 @@ static HRESULT WINAPI BaseRenderer_InputPin_EndFlush(IPin * iface)
hr = BaseRendererImpl_EndFlush(pFilter);
}
LeaveCriticalSection(This->pin.pCritSec);
- LeaveCriticalSection(&pFilter->csRenderLock);
LeaveCriticalSection(&pFilter->filter.csFilter);
+ LeaveCriticalSection(&pFilter->csRenderLock);
return hr;
}
--
1.7.9.5

View File

@ -1,37 +0,0 @@
From 88b8e012138b2fc81718cde5f4e4f50cc6b4ed6b Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
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 d175fa5..c8f130c 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

View File

@ -1,27 +0,0 @@
From a67e8965650e75947a899cec4540d428e2cd1236 Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
Date: Thu, 17 Jul 2014 10:30:19 -0600
Subject: quartz: Fix race condition on EndOfStream between csRenderLock and
filter.csFilter.
---
dlls/quartz/dsoundrender.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/quartz/dsoundrender.c b/dlls/quartz/dsoundrender.c
index 57e3d3b..8c67374 100644
--- a/dlls/quartz/dsoundrender.c
+++ b/dlls/quartz/dsoundrender.c
@@ -254,8 +254,8 @@ static HRESULT DSoundRender_HandleEndOfStream(DSoundRenderImpl *This)
LeaveCriticalSection(&This->renderer.filter.csFilter);
LeaveCriticalSection(&This->renderer.csRenderLock);
WaitForSingleObject(This->blocked, 10);
- EnterCriticalSection(&This->renderer.filter.csFilter);
EnterCriticalSection(&This->renderer.csRenderLock);
+ EnterCriticalSection(&This->renderer.filter.csFilter);
This->in_loop = 0;
}
--
1.7.9.5

View File

@ -1,31 +0,0 @@
From 9315e5c91356306f823cbcde26ed1a4e176fed90 Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
Date: Thu, 17 Jul 2014 10:31:17 -0600
Subject: quartz: Fix race condition on EndFlush between csRenderLock and
filter.csFilter.
---
dlls/quartz/videorenderer.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/quartz/videorenderer.c b/dlls/quartz/videorenderer.c
index 4e8f359..571a19d 100644
--- a/dlls/quartz/videorenderer.c
+++ b/dlls/quartz/videorenderer.c
@@ -374,11 +374,11 @@ static HRESULT WINAPI VideoRenderer_EndFlush(BaseRenderer* iface)
if (This->renderer.pMediaSample) {
ResetEvent(This->hEvent);
LeaveCriticalSection(iface->pInputPin->pin.pCritSec);
- LeaveCriticalSection(&iface->csRenderLock);
LeaveCriticalSection(&iface->filter.csFilter);
+ LeaveCriticalSection(&iface->csRenderLock);
WaitForSingleObject(This->hEvent, INFINITE);
- EnterCriticalSection(&iface->filter.csFilter);
EnterCriticalSection(&iface->csRenderLock);
+ EnterCriticalSection(&iface->filter.csFilter);
EnterCriticalSection(iface->pInputPin->pin.pCritSec);
}
if (This->renderer.filter.state == State_Paused) {
--
1.7.9.5

View File

@ -1,25 +0,0 @@
From abaf77994534eaa61cdb2e6dad10de2d5ff7f50f Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
Date: Fri, 18 Jul 2014 10:57:13 -0600
Subject: quartz: Fix race condition between EndOfStream and Pause.
---
dlls/quartz/dsoundrender.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/quartz/dsoundrender.c b/dlls/quartz/dsoundrender.c
index 8c67374..2914b15 100644
--- a/dlls/quartz/dsoundrender.c
+++ b/dlls/quartz/dsoundrender.c
@@ -243,7 +243,7 @@ end:
static HRESULT DSoundRender_HandleEndOfStream(DSoundRenderImpl *This)
{
- while (1)
+ while (This->renderer.filter.state == State_Running)
{
DWORD pos1, pos2;
DSoundRender_UpdatePositions(This, &pos1, &pos2);
--
1.7.9.5

View File

@ -1,4 +0,0 @@
Author: Erich E. Hoover
Subject: Fix possible race conditions in strmbase/quartz.
Revision: 1
Fixes: [31566] Fix race conditions and deadlocks in strmbase/quartz