From d62b4dcb664a2a6a8579600c975e8213766746f7 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst Date: Tue, 9 Nov 2010 23:42:44 +0100 Subject: [PATCH] winegstreamer: Fix buffer leak in error path. --- dlls/winegstreamer/gstdemux.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/dlls/winegstreamer/gstdemux.c b/dlls/winegstreamer/gstdemux.c index d26f8538b39..a6f72c4a9e6 100644 --- a/dlls/winegstreamer/gstdemux.c +++ b/dlls/winegstreamer/gstdemux.c @@ -517,10 +517,12 @@ static GstFlowReturn got_data_sink(GstPad *pad, GstBuffer *buf) { } else { BYTE *ptr = NULL; hr = BaseOutputPinImpl_GetDeliveryBuffer(&pin->pin, &sample, NULL, NULL, 0); - freeSamp = TRUE; - if (hr == VFW_E_NOT_CONNECTED) + if (hr == VFW_E_NOT_CONNECTED) { + gst_buffer_unref(buf); return GST_FLOW_NOT_LINKED; + } if (FAILED(hr)) { + gst_buffer_unref(buf); ERR("Didn't get a GST_APP_BUFFER, and could not get a delivery buffer (%x), returning GST_FLOW_WRONG_STATE\n", hr); return GST_FLOW_WRONG_STATE; }