Piotr Caban : strmbase: Don' t pass NULL fetched parameter in BaseOutputPinImpl_Connect on external IPin implementation .
Alexandre Julliard
julliard at winehq.org
Tue Nov 26 15:51:44 CST 2013
Module: wine
Branch: master
Commit: d6f8d8f25b96dbb97c769debd1268754de38cd35
URL: http://source.winehq.org/git/wine.git/?a=commit;h=d6f8d8f25b96dbb97c769debd1268754de38cd35
Author: Piotr Caban <piotr at codeweavers.com>
Date: Tue Nov 26 14:34:32 2013 +0100
strmbase: Don't pass NULL fetched parameter in BaseOutputPinImpl_Connect on external IPin implementation.
---
dlls/strmbase/pin.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/dlls/strmbase/pin.c b/dlls/strmbase/pin.c
index eb9b23c..e4ddd38 100644
--- a/dlls/strmbase/pin.c
+++ b/dlls/strmbase/pin.c
@@ -419,6 +419,9 @@ HRESULT WINAPI BaseOutputPinImpl_Connect(IPin * iface, IPin * pReceivePin, const
TRACE("(%p/%p)->(%p, %p)\n", This, iface, pReceivePin, pmt);
dump_AM_MEDIA_TYPE(pmt);
+ if (!pReceivePin)
+ return E_POINTER;
+
/* If we try to connect to ourselves, we will definitely deadlock.
* There are other cases where we could deadlock too, but this
* catches the obvious case */
@@ -465,9 +468,11 @@ HRESULT WINAPI BaseOutputPinImpl_Connect(IPin * iface, IPin * pReceivePin, const
/* then try receiver filter's media types */
if (hr != S_OK && SUCCEEDED(hr = IPin_EnumMediaTypes(pReceivePin, &pEnumCandidates))) /* if we haven't already connected successfully */
{
+ ULONG fetched;
+
hr = VFW_E_NO_ACCEPTABLE_TYPES; /* Assume the worst, but set to S_OK if connected successfully */
- while (S_OK == IEnumMediaTypes_Next(pEnumCandidates, 1, &pmtCandidate, NULL))
+ while (S_OK == IEnumMediaTypes_Next(pEnumCandidates, 1, &pmtCandidate, &fetched))
{
assert(pmtCandidate);
dump_AM_MEDIA_TYPE(pmtCandidate);
More information about the wine-cvs
mailing list