vaapivideobufferpool: validate returned meta
authorVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Fri, 24 Jan 2020 10:55:22 +0000 (11:55 +0100)
committerVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Fri, 24 Jan 2020 10:55:22 +0000 (11:55 +0100)
Validate if the meta returned by gst_buffer_get_vaapi_video_meta() in
the acquired buffer is not null.

This situation should be very "pathological", but still it is better
be safe since that meta might be used later to create a new dma
buffer.

gst/vaapi/gstvaapivideobufferpool.c

index b9e4386..f01773e 100644 (file)
@@ -440,8 +440,11 @@ gst_vaapi_video_buffer_pool_acquire_buffer (GstBufferPool * pool,
 
   /* Update the underlying surface proxy */
   meta = gst_buffer_get_vaapi_video_meta (buffer);
-  if (meta)
-    gst_vaapi_video_meta_set_surface_proxy (meta, priv_params->proxy);
+  if (!meta) {
+    *out_buffer_ptr = buffer;
+    return GST_FLOW_ERROR;
+  }
+  gst_vaapi_video_meta_set_surface_proxy (meta, priv_params->proxy);
 
   /* Find the cached memory associated with the given surface. */
   surface = GST_VAAPI_SURFACE_PROXY_SURFACE (priv_params->proxy);