OSDN Git Service

st/va: add more errors checks in vlVaBufferSetNumElements and vlVaMapBuffer
authorJulien Isorce <j.isorce@samsung.com>
Fri, 30 Oct 2015 11:42:51 +0000 (11:42 +0000)
committerEmil Velikov <emil.l.velikov@gmail.com>
Sat, 7 Nov 2015 15:17:49 +0000 (15:17 +0000)
Signed-off-by: Julien Isorce <j.isorce@samsung.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
(cherry picked from commit 5e763aaa21654d0591b7da14c573fc03d4a60205)
Nominated-by: Emil Velikov <emil.velikov@collabora.co.uk>
src/gallium/state_trackers/va/buffer.c

index 8f9ba44..f5b9e81 100644 (file)
@@ -73,6 +73,9 @@ vlVaBufferSetNumElements(VADriverContextP ctx, VABufferID buf_id,
       return VA_STATUS_ERROR_INVALID_CONTEXT;
 
    buf = handle_table_get(VL_VA_DRIVER(ctx)->htab, buf_id);
+   if (!buf)
+      return VA_STATUS_ERROR_INVALID_BUFFER;
+
    buf->data = REALLOC(buf->data, buf->size * buf->num_elements,
                        buf->size * num_elements);
    buf->num_elements = num_elements;
@@ -91,6 +94,9 @@ vlVaMapBuffer(VADriverContextP ctx, VABufferID buf_id, void **pbuff)
    if (!ctx)
       return VA_STATUS_ERROR_INVALID_CONTEXT;
 
+   if (!pbuff)
+      return VA_STATUS_ERROR_INVALID_PARAMETER;
+
    buf = handle_table_get(VL_VA_DRIVER(ctx)->htab, buf_id);
    if (!buf)
       return VA_STATUS_ERROR_INVALID_BUFFER;