Zebediah Figura : strmbase: Forbid disconnecting the sink if the filter is not stopped.

Alexandre Julliard julliard at winehq.org
Thu Nov 19 16:10:22 CST 2020


Module: wine
Branch: master
Commit: 9c2cf1317099b464e0984c7925c1a7f667b3513e
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=9c2cf1317099b464e0984c7925c1a7f667b3513e

Author: Zebediah Figura <z.figura12 at gmail.com>
Date:   Thu Nov 19 11:19:31 2020 -0600

strmbase: Forbid disconnecting the sink if the filter is not stopped.

Addendum to 2a6037e263ff3fae8ca82d90b0b141bea1cd473d.

Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/strmbase/pin.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/dlls/strmbase/pin.c b/dlls/strmbase/pin.c
index c08f04730e7..d7788cda493 100644
--- a/dlls/strmbase/pin.c
+++ b/dlls/strmbase/pin.c
@@ -887,6 +887,13 @@ static HRESULT WINAPI sink_Disconnect(IPin *iface)
 
     EnterCriticalSection(&pin->pin.filter->csFilter);
 
+    if (pin->pin.filter->state != State_Stopped)
+    {
+        LeaveCriticalSection(&pin->pin.filter->csFilter);
+        WARN("Filter is not stopped; returning VFW_E_NOT_STOPPED.\n");
+        return VFW_E_NOT_STOPPED;
+    }
+
     if (pin->pin.peer)
     {
         if (pin->pFuncsTable->sink_disconnect)




More information about the wine-cvs mailing list