dataurisrc: Don't assume that get_current_caps() returns non-NULL caps after has_curr...
authorSebastian Dröge <sebastian@centricular.com>
Tue, 23 Feb 2016 16:17:42 +0000 (18:17 +0200)
committerSebastian Dröge <sebastian@centricular.com>
Tue, 23 Feb 2016 16:17:42 +0000 (18:17 +0200)
Remove calls to gst_pad_has_current_caps() which then go on to call
gst_pad_get_current_caps() as the caps can go to NULL in between. Instead just
use gst_pad_get_current_caps() and check for NULL.

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

plugins/elements/gstdataurisrc.c

index 45c1814..fe018b0 100644 (file)
@@ -177,9 +177,8 @@ gst_data_uri_src_get_caps (GstBaseSrc * basesrc, GstCaps * filter)
   GstCaps *caps;
 
   GST_OBJECT_LOCK (src);
-  if (gst_pad_has_current_caps (GST_BASE_SRC_PAD (basesrc)))
-    caps = gst_pad_get_current_caps (GST_BASE_SRC_PAD (basesrc));
-  else
+  caps = gst_pad_get_current_caps (GST_BASE_SRC_PAD (basesrc));
+  if (!caps)
     caps = gst_caps_new_any ();
   GST_OBJECT_UNLOCK (src);