From da19457fcaa2f17539c02a51628f59e2dbcb6594 Mon Sep 17 00:00:00 2001 From: kubistika Date: Thu, 11 Jul 2019 22:13:19 +0300 Subject: [PATCH] winpr: ObjectPool_Return: fix error handling --- winpr/libwinpr/utils/collections/ObjectPool.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/winpr/libwinpr/utils/collections/ObjectPool.c b/winpr/libwinpr/utils/collections/ObjectPool.c index 1a4ca05..f31f17d 100644 --- a/winpr/libwinpr/utils/collections/ObjectPool.c +++ b/winpr/libwinpr/utils/collections/ObjectPool.c @@ -80,7 +80,8 @@ void ObjectPool_Return(wObjectPool* pool, void* obj) new_cap = pool->capacity * 2; new_arr = (void**) realloc(pool->array, sizeof(void*) * new_cap); if (!new_arr) - return; + goto out; + pool->array = new_arr; pool->capacity = new_cap; } @@ -90,6 +91,7 @@ void ObjectPool_Return(wObjectPool* pool, void* obj) if (pool->object.fnObjectUninit) pool->object.fnObjectUninit(obj); +out: if (pool->synchronized) LeaveCriticalSection(&pool->lock); } -- 2.7.4