glupload: fix transform_caps NULL pointer dereference
authorPhilipp Zabel <p.zabel@pengutronix.de>
Mon, 24 Feb 2020 15:38:56 +0000 (16:38 +0100)
committerNicolas Dufresne <nicolas@ndufresne.ca>
Mon, 2 Mar 2020 11:07:26 +0000 (11:07 +0000)
gst_gl_upload_transform_caps() is missing a NULL pointer check in case
the current upload method's transform_caps returns a NULL pointer. In
the following loop over all upload methods, NULL pointer return values
are already handled correctly.

gst-libs/gst/gl/gstglupload.c

index c05b528..7cb82d6 100644 (file)
@@ -1797,16 +1797,19 @@ gst_gl_upload_transform_caps (GstGLUpload * upload, GstGLContext * context,
   if (upload->priv->method) {
     tmp = upload->priv->method->transform_caps (upload->priv->method_impl,
         context, direction, caps);
-    if (filter) {
-      result = gst_caps_intersect_full (filter, tmp, GST_CAPS_INTERSECT_FIRST);
-      gst_caps_unref (tmp);
-    } else {
-      result = tmp;
+    if (tmp) {
+      if (filter) {
+        result =
+            gst_caps_intersect_full (filter, tmp, GST_CAPS_INTERSECT_FIRST);
+        gst_caps_unref (tmp);
+      } else {
+        result = tmp;
+      }
+      if (!gst_caps_is_empty (result))
+        return result;
+      else
+        gst_caps_unref (result);
     }
-    if (!gst_caps_is_empty (result))
-      return result;
-    else
-      gst_caps_unref (result);
   }
 
   tmp = gst_caps_new_empty ();