summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThiago Santos <ts.santos@sisa.samsung.com>2014-01-17 22:53:01 -0300
committerThiago Santos <ts.santos@sisa.samsung.com>2014-01-17 23:13:47 -0300
commitc6f8d255574229fc3f7584f8ad37adbe4c484637 (patch)
treec6e75ac0c2b5eb781258888edc66f60d51c0a537
parentddc76753e0338b128d1363f1dd72516ee90feb83 (diff)
downloadgstreamer-c6f8d255574229fc3f7584f8ad37adbe4c484637.tar.gz
pad: fix sticky event leak after sticky_events_foreach
events_foreach adds an extra ref when giving the event to the user function. In case it was unrefed by the user, this extra ref disappeared, but events_foreach still should unref again to lose its own ref before removing the event from the array. https://bugzilla.gnome.org/show_bug.cgi?id=722467
-rw-r--r--gst/gstpad.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gst/gstpad.c b/gst/gstpad.c
index 516e6dd97b..794814b654 100644
--- a/gst/gstpad.c
+++ b/gst/gstpad.c
@@ -544,6 +544,7 @@ restart:
if (G_UNLIKELY (ev->event != ev_ret.event)) {
if (G_UNLIKELY (ev_ret.event == NULL)) {
/* function unreffed and set the event to NULL, remove it */
+ gst_event_unref (ev->event);
g_array_remove_index (events, i);
len--;
cookie = ++pad->priv->events_cookie;