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