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)
committerChristian König <christian.koenig@amd.com>
Fri, 30 Oct 2015 12:20:41 +0000 (13:20 +0100)
Signed-off-by: Julien Isorce <j.isorce@samsung.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
src/gallium/state_trackers/va/buffer.c

index 8f9ba440a75608af3cfc0766f9b10bd71821ce5a..f5b9e814c3ab5116b108160d331986d7792f84bf 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;