From bbcfc3b9e632f490880a68397078bf1b998d499d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Tue, 30 Dec 2014 16:26:58 +0100 Subject: [PATCH] souphttpsrc: Don't return a buffer when returning not GST_FLOW_OK basesrc assumes that we don't return a buffer if something else than OK is returned. It will just leak any buffer we might accidentially provide here. This can potentially happen during flushing. Maybe fixes https://bugzilla.gnome.org/show_bug.cgi?id=741993 --- ext/soup/gstsouphttpsrc.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/ext/soup/gstsouphttpsrc.c b/ext/soup/gstsouphttpsrc.c index 5f940ab2bf..6b07310009 100644 --- a/ext/soup/gstsouphttpsrc.c +++ b/ext/soup/gstsouphttpsrc.c @@ -1709,6 +1709,18 @@ gst_soup_http_src_do_request (GstSoupHTTPSrc * src, const gchar * method, src->ret = GST_FLOW_EOS; g_cond_signal (&src->request_finished_cond); + /* basesrc assumes that we don't return a buffer if + * something else than OK is returned. It will just + * leak any buffer we might accidentially provide + * here. + * + * This can potentially happen during flushing. + */ + if (src->ret != GST_FLOW_OK && outbuf && *outbuf) { + gst_buffer_unref (*outbuf); + *outbuf = NULL; + } + return src->ret; }