diff options
author | Philip Lorenz <philip@bithub.de> | 2012-09-07 16:47:58 +0200 |
---|---|---|
committer | Gwenole Beauchesne <gwenole.beauchesne@intel.com> | 2012-09-14 18:12:07 +0200 |
commit | e4fd3b084a03ddc2d4ae98f9885dea6994daa45a (patch) | |
tree | 90a4260276294a4f186644929201abed6fcdbbcb | |
parent | ca895d6710122afe20996bedabbbc8c0fa895a90 (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.c | 1 |
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; |