From: Thomas Hindoe Paaboel Andersen Date: Sat, 5 Mar 2016 12:07:07 +0000 (+0100) Subject: st/va: avoid dereference after free in vlVaDestroyImage X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b9855dcdf7c94605305d6372d1f9883f76d10b6a;p=mesa.git st/va: avoid dereference after free in vlVaDestroyImage Cc: "11.1 11.2" Reviewed-by: Emil Velikov Tested-by: Julien Isorce --- diff --git a/src/gallium/state_trackers/va/image.c b/src/gallium/state_trackers/va/image.c index 2c42a985823..92d014c3d44 100644 --- a/src/gallium/state_trackers/va/image.c +++ b/src/gallium/state_trackers/va/image.c @@ -280,6 +280,7 @@ vlVaDestroyImage(VADriverContextP ctx, VAImageID image) { vlVaDriver *drv; VAImage *vaimage; + VAStatus status; if (!ctx) return VA_STATUS_ERROR_INVALID_CONTEXT; @@ -294,8 +295,9 @@ vlVaDestroyImage(VADriverContextP ctx, VAImageID image) handle_table_remove(VL_VA_DRIVER(ctx)->htab, image); pipe_mutex_unlock(drv->mutex); + status = vlVaDestroyBuffer(ctx, vaimage->buf); FREE(vaimage); - return vlVaDestroyBuffer(ctx, vaimage->buf); + return status; } VAStatus