From 269699f621d3d937e590e426c4dec618ef75f2cb Mon Sep 17 00:00:00 2001 From: Jan Schmidt Date: Tue, 3 Jan 2017 02:11:27 +1100 Subject: [PATCH] caps: Fix null pointer dereference on invalid static caps A typo in a static caps string may result in failure to deserialise it, so don't dereference the result without checking. --- gst/gstcaps.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/gst/gstcaps.c b/gst/gstcaps.c index 7c68129..c947f37 100644 --- a/gst/gstcaps.c +++ b/gst/gstcaps.c @@ -423,12 +423,14 @@ gst_static_caps_get (GstStaticCaps * static_caps) *caps = gst_caps_from_string (string); - /* Caps generated from static caps are usually leaked */ - GST_MINI_OBJECT_FLAG_SET (*caps, GST_MINI_OBJECT_FLAG_MAY_BE_LEAKED); - /* convert to string */ - if (G_UNLIKELY (*caps == NULL)) + if (G_UNLIKELY (*caps == NULL)) { g_critical ("Could not convert static caps \"%s\"", string); + goto done; + } + + /* Caps generated from static caps are usually leaked */ + GST_MINI_OBJECT_FLAG_SET (*caps, GST_MINI_OBJECT_FLAG_MAY_BE_LEAKED); GST_CAT_TRACE (GST_CAT_CAPS, "created %p from string %s", static_caps, string); -- 2.7.4