Module: wine Branch: master Commit: 8bfd6d3285d9c4e91f79445070ecfdbf792ffb9e URL: https://source.winehq.org/git/wine.git/?a=commit;h=8bfd6d3285d9c4e91f7944507...
Author: Zebediah Figura z.figura12@gmail.com Date: Fri Nov 22 21:14:01 2019 -0600
strmbase/transform: Check whether the source is connected in TransformFilter_Input_Receive().
Signed-off-by: Zebediah Figura z.figura12@gmail.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/strmbase/transform.c | 10 ++++++++++ 1 file changed, 10 insertions(+)
diff --git a/dlls/strmbase/transform.c b/dlls/strmbase/transform.c index e7d4d66164..29c385793a 100644 --- a/dlls/strmbase/transform.c +++ b/dlls/strmbase/transform.c @@ -59,6 +59,16 @@ static HRESULT WINAPI TransformFilter_Input_Receive(struct strmbase_sink *This,
TRACE("%p\n", This);
+ /* We do not expect pin connection state to change while the filter is + * running. This guarantee is necessary, since otherwise we would have to + * take the filter lock, and we can't take the filter lock from a streaming + * thread. */ + if (!pTransform->source.pMemInputPin) + { + WARN("Source is not connected, returning VFW_E_NOT_CONNECTED.\n"); + return VFW_E_NOT_CONNECTED; + } + EnterCriticalSection(&pTransform->csReceive); if (pTransform->filter.state == State_Stopped) {