From 4e880d4d1e151ea64f83c28b5c3e1bbc06c57903 Mon Sep 17 00:00:00 2001 From: Zaheer Abbas Merali Date: Thu, 5 Sep 2013 14:14:42 +0200 Subject: [PATCH] collectpads: Don't unref NULL GstCollectData If a pad is removed while a collectpads element (say adder) is in a chain function waiting to be collected, there is a possibility that an unref happens on a NULL pointer. https://bugzilla.gnome.org/show_bug.cgi?id=707536 --- libs/gst/base/gstcollectpads.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libs/gst/base/gstcollectpads.c b/libs/gst/base/gstcollectpads.c index b6db9f4e2f..e517250ddc 100644 --- a/libs/gst/base/gstcollectpads.c +++ b/libs/gst/base/gstcollectpads.c @@ -2058,7 +2058,9 @@ gst_collect_pads_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer) unlock_done: GST_COLLECT_PADS_STREAM_UNLOCK (pads); - unref_data (data); + /* data is definitely NULL if pad_removed goto was run. */ + if (data) + unref_data (data); if (buffer) gst_buffer_unref (buffer); return ret;