amstream: Destroy BaseFilter after MediaStreamFilterImpl child class.
Thomas Faber
thomas.faber at reactos.org
Sun Jul 27 09:04:56 CDT 2014
Missed this in the last series. Use after free of the filter's critical
section once again.
-------------- next part --------------
From 81c9355b4b2b354da9ee7d6347f3014fbbadbfb1 Mon Sep 17 00:00:00 2001
From: Thomas Faber <thomas.faber at reactos.org>
Date: Tue, 22 Jul 2014 15:19:44 +0200
Subject: amstream: Destroy BaseFilter after MediaStreamFilterImpl child class.
---
dlls/amstream/mediastreamfilter.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dlls/amstream/mediastreamfilter.c b/dlls/amstream/mediastreamfilter.c
index 8811455..8c26c8e 100644
--- a/dlls/amstream/mediastreamfilter.c
+++ b/dlls/amstream/mediastreamfilter.c
@@ -238,7 +238,7 @@ static ULONG WINAPI MediaStreamFilterImpl_AddRef(IMediaStreamFilter *iface)
static ULONG WINAPI MediaStreamFilterImpl_Release(IMediaStreamFilter *iface)
{
IMediaStreamFilterImpl *This = impl_from_IMediaStreamFilter(iface);
- ULONG ref = BaseFilterImpl_Release(&This->filter.IBaseFilter_iface);
+ ULONG ref = InterlockedDecrement(&This->filter.refCount);
TRACE("(%p)->(): new ref = %u\n", iface, ref);
@@ -250,6 +250,7 @@ static ULONG WINAPI MediaStreamFilterImpl_Release(IMediaStreamFilter *iface)
IMediaStream_Release(This->streams[i]);
IPin_Release(This->pins[i]);
}
+ BaseFilter_Destroy(&This->filter);
HeapFree(GetProcessHeap(), 0, This);
}
--
1.9.0.msysgit.0
More information about the wine-patches
mailing list