summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/va
diff options
context:
space:
mode:
authorGurkirpal Singh <gurkirpal204@gmail.com>2016-06-26 12:32:25 +0530
committerJulien Isorce <j.isorce@samsung.com>2016-06-27 08:09:08 +0100
commit46dba701d81199e6450dc50ef3f0ff476dbfb17f (patch)
tree2c39f50d8138c6e167a6527137dedfefb2884778 /src/gallium/state_trackers/va
parentd20b89e9281d6d1ccf56a4eb743dc783fce2fc51 (diff)
downloadexternal_mesa3d-46dba701d81199e6450dc50ef3f0ff476dbfb17f.zip
external_mesa3d-46dba701d81199e6450dc50ef3f0ff476dbfb17f.tar.gz
external_mesa3d-46dba701d81199e6450dc50ef3f0ff476dbfb17f.tar.bz2
st/va: Check NULL pointer
Call to handle_table_get in vlVaDestroySurfaces can return NULL on failure. CID: 1243522 Signed-off-by: Gurkirpal Singh <gurkirpal204@gmail.com> Reviewed-by: Julien Isorce <j.isorce@samsung.com>
Diffstat (limited to 'src/gallium/state_trackers/va')
-rw-r--r--src/gallium/state_trackers/va/surface.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/gallium/state_trackers/va/surface.c b/src/gallium/state_trackers/va/surface.c
index 5efb893..3e74353 100644
--- a/src/gallium/state_trackers/va/surface.c
+++ b/src/gallium/state_trackers/va/surface.c
@@ -71,6 +71,10 @@ vlVaDestroySurfaces(VADriverContextP ctx, VASurfaceID *surface_list, int num_sur
pipe_mutex_lock(drv->mutex);
for (i = 0; i < num_surfaces; ++i) {
vlVaSurface *surf = handle_table_get(drv->htab, surface_list[i]);
+ if (!surf) {
+ pipe_mutex_unlock(drv->mutex);
+ return VA_STATUS_ERROR_INVALID_SURFACE;
+ }
if (surf->buffer)
surf->buffer->destroy(surf->buffer);
util_dynarray_fini(&surf->subpics);