vabasedec: Fix a possible NULL pointer dereference
authorHe Junyan <junyan.he@intel.com>
Fri, 23 Feb 2024 13:54:17 +0000 (21:54 +0800)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Fri, 23 Feb 2024 16:55:50 +0000 (16:55 +0000)
The format in _get_preferred_format_and_caps_features() may be NULL.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6206>

subprojects/gst-plugins-bad/sys/va/gstvabasedec.c

index 72c98415de069230b799e61f4276a39df3784db1..736163e7f2b01a84c394af8c092eef21c854a7ba 100644 (file)
@@ -876,10 +876,13 @@ gst_va_base_dec_get_preferred_format_and_caps_features (GstVaBaseDec * base,
    * if downstream doesn't support system memory negotiation will fail later.
    */
   if (is_any) {
+    GstVideoFormat fmt =
+        _caps_video_format_from_chroma (allowed_caps, base->rt_format);
     features = GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY;
+
     if (format)
-      *format = _caps_video_format_from_chroma (allowed_caps, base->rt_format);
-    if (capsfeatures && *format != GST_VIDEO_FORMAT_UNKNOWN)
+      *format = fmt;
+    if (capsfeatures && fmt != GST_VIDEO_FORMAT_UNKNOWN)
       *capsfeatures = gst_caps_features_copy (features);
     goto bail;
   }