pad: fix invalid unref after IDLE probe on non-OK flow return
authorGeorge Kiagiadakis <george.kiagiadakis@collabora.com>
Sun, 2 Aug 2015 15:38:14 +0000 (17:38 +0200)
committerTim-Philipp Müller <tim@centricular.com>
Tue, 4 Aug 2015 10:10:45 +0000 (11:10 +0100)
In case there is an IDLE probe fired from gst_pad_push_data and it
doesn't return GST_FLOW_OK, the code jumps to the probe_stopped
label which tries to unref the data object. However, at this point
the data object belongs downstream and must not be touched.
By setting data = NULL, the code skips this unref.

https://bugzilla.gnome.org//show_bug.cgi?id=753151

gst/gstpad.c

index 34735a0..d041a83 100644 (file)
@@ -4280,6 +4280,7 @@ gst_pad_push_data (GstPad * pad, GstPadProbeType type, void *data)
   GST_OBJECT_UNLOCK (pad);
 
   ret = gst_pad_chain_data_unchecked (peer, type, data);
+  data = NULL;
 
   gst_object_unref (peer);