From: Thomas Faber Subject: winegstreamer: Destroy BaseFilter after GST child class. Message-Id: <53CD6465.1010203@reactos.org> Date: Mon, 21 Jul 2014 21:05:09 +0200 Critical section use after free again. From 8b3ab93a5762fd6afee7db5d3a3d18f8e17c1181 Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Sat, 19 Jul 2014 10:40:28 +0200 Subject: winegstreamer: Destroy BaseFilter after GST child class. --- dlls/winegstreamer/gstdemux.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dlls/winegstreamer/gstdemux.c b/dlls/winegstreamer/gstdemux.c index 3694b54..4e5f04d 100644 --- a/dlls/winegstreamer/gstdemux.c +++ b/dlls/winegstreamer/gstdemux.c @@ -1099,6 +1099,7 @@ static void GST_Destroy(GSTImpl *This) { gst_bus_set_sync_handler(This->bus, NULL, NULL); gst_object_unref(This->bus); } + BaseFilter_Destroy(&This->filter); CoTaskMemFree(This); } @@ -1131,7 +1132,7 @@ static HRESULT WINAPI GST_QueryInterface(IBaseFilter *iface, REFIID riid, LPVOID static ULONG WINAPI GST_Release(IBaseFilter *iface) { GSTImpl *This = (GSTImpl *)iface; - ULONG refCount = BaseFilterImpl_Release(iface); + ULONG refCount = InterlockedDecrement(&This->filter.refCount); TRACE("(%p)->() Release from %d\n", This, refCount + 1); -- 1.9.0.msysgit.0