padtemplate: Fix null pointer dereference on invalid static caps
authorJan Schmidt <jan@centricular.com>
Mon, 2 Jan 2017 15:12:27 +0000 (02:12 +1100)
committerJan Schmidt <jan@centricular.com>
Mon, 2 Jan 2017 15:21:10 +0000 (02:21 +1100)
A typo in a static caps string may result in failure to
deserialise it, so don't dereference the result without
checking.

gst/gstpadtemplate.c

index 453c2d1..55ab892 100644 (file)
@@ -415,9 +415,11 @@ gst_pad_template_set_property (GObject * object, guint prop_id,
       break;
     case PROP_CAPS:
       GST_PAD_TEMPLATE_CAPS (object) = g_value_dup_boxed (value);
-      /* GstPadTemplate are usually leaked so are their caps */
-      GST_MINI_OBJECT_FLAG_SET (GST_PAD_TEMPLATE_CAPS (object),
-          GST_MINI_OBJECT_FLAG_MAY_BE_LEAKED);
+      if (GST_PAD_TEMPLATE_CAPS (object) != NULL) {
+        /* GstPadTemplate are usually leaked so are their caps */
+        GST_MINI_OBJECT_FLAG_SET (GST_PAD_TEMPLATE_CAPS (object),
+            GST_MINI_OBJECT_FLAG_MAY_BE_LEAKED);
+      }
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);