From dedd20f43018c86779c0e768b6da5fc443a13fac Mon Sep 17 00:00:00 2001 From: Philipp Zabel Date: Mon, 24 Feb 2020 16:38:56 +0100 Subject: [PATCH] glupload: fix transform_caps NULL pointer dereference 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 | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/gst-libs/gst/gl/gstglupload.c b/gst-libs/gst/gl/gstglupload.c index c05b528..7cb82d6 100644 --- a/gst-libs/gst/gl/gstglupload.c +++ b/gst-libs/gst/gl/gstglupload.c @@ -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 (); -- 2.7.4