summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Lorenz <philip@bithub.de>2012-09-07 16:47:58 +0200
committerGwenole Beauchesne <gwenole.beauchesne@intel.com>2012-09-14 18:12:07 +0200
commite4fd3b084a03ddc2d4ae98f9885dea6994daa45a (patch)
tree90a4260276294a4f186644929201abed6fcdbbcb
parentca895d6710122afe20996bedabbbc8c0fa895a90 (diff)
decode: mark destroyed buffers as deleted.
In multi-threaded scenarios destroying a buffer via destroy_va_buffer() will allow other threads to claim the freed buffer object. If the calling code does not know whether the buffer object was freed it may attempt to vaDestroyBuffer, essentially destroying a buffer object which is in use by another thread.
-rw-r--r--src/vdpau_decode.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/vdpau_decode.c b/src/vdpau_decode.c
index b9f1419..22d9cd9 100644
--- a/src/vdpau_decode.c
+++ b/src/vdpau_decode.c
@@ -1229,6 +1229,7 @@ vdpau_RenderPicture(
destroy_va_buffer(driver_data, obj_buffer);
break;
}
+ buffers[i] = VA_INVALID_BUFFER;
}
return VA_STATUS_SUCCESS;