Module: wine Branch: master Commit: d62b4dcb664a2a6a8579600c975e8213766746f7 URL: http://source.winehq.org/git/wine.git/?a=commit;h=d62b4dcb664a2a6a8579600c97...
Author: Maarten Lankhorst m.b.lankhorst@gmail.com Date: Tue Nov 9 23:42:44 2010 +0100
winegstreamer: Fix buffer leak in error path.
---
dlls/winegstreamer/gstdemux.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/dlls/winegstreamer/gstdemux.c b/dlls/winegstreamer/gstdemux.c index d26f853..a6f72c4 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; }