[vlc-devel] [PATCH] picture_pool: fix refcount leak if pic_lock fails.
Thomas Guillem
thomas at gllm.fr
Fri Oct 31 16:30:51 CET 2014
---
src/misc/picture_pool.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/misc/picture_pool.c b/src/misc/picture_pool.c
index 2a0f677..771df99 100644
--- a/src/misc/picture_pool.c
+++ b/src/misc/picture_pool.c
@@ -277,8 +277,11 @@ picture_t *picture_pool_Get(picture_pool_t *pool)
if (!atomic_compare_exchange_strong(&picture->gc.refcount, &refs, 1))
continue;
- if (pool->pic_lock != NULL && pool->pic_lock(picture) != 0)
+ if (pool->pic_lock != NULL && pool->pic_lock(picture) != 0) {
+ refs = 1;
+ atomic_compare_exchange_strong(&picture->gc.refcount, &refs, 0);
continue;
+ }
/* */
picture->p_next = NULL;
--
2.1.0
More information about the vlc-devel
mailing list