From 95bee0aa1ec4f26c341ef4b994c6aae541c97347 Mon Sep 17 00:00:00 2001 From: "Erich E. Hoover" Date: Fri, 18 Jul 2014 10:58:54 -0600 Subject: [PATCH] Fix race condition between EndOfStream and Pause. --- debian/changelog | 5 ++-- ...condition-between-EndOfStream-and-Pa.patch | 25 +++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 patches/17-strmbase-Lock_Race_Conditions/0006-quartz-Fix-race-condition-between-EndOfStream-and-Pa.patch diff --git a/debian/changelog b/debian/changelog index e277adbd..ca30ace0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,7 @@ -wine-compholio (1.7.22) UNRELEASED; urgency=low +wine-compholio (1.7.23) UNRELEASED; urgency=low * Fix possible race conditions in strmbase/quartz. - -- Erich E. Hoover Thu, 17 Jul 2014 10:53:49 -0600 + * Fix race condition between EndOfStream and Pause. + -- Erich E. Hoover Fri, 18 Jul 2014 10:58:01 -0600 wine-compholio (1.7.22) unstable; urgency=low * Implement passing ACLs to CreateProcess. diff --git a/patches/17-strmbase-Lock_Race_Conditions/0006-quartz-Fix-race-condition-between-EndOfStream-and-Pa.patch b/patches/17-strmbase-Lock_Race_Conditions/0006-quartz-Fix-race-condition-between-EndOfStream-and-Pa.patch new file mode 100644 index 00000000..2171c2b4 --- /dev/null +++ b/patches/17-strmbase-Lock_Race_Conditions/0006-quartz-Fix-race-condition-between-EndOfStream-and-Pa.patch @@ -0,0 +1,25 @@ +From abaf77994534eaa61cdb2e6dad10de2d5ff7f50f Mon Sep 17 00:00:00 2001 +From: "Erich E. Hoover" +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 +