From 9fee695ed08d7d7921a3a265479bd95b1df58111 Mon Sep 17 00:00:00 2001 From: akallabeth Date: Fri, 24 Jun 2022 16:43:01 +0200 Subject: [PATCH] Assert stream pool if duplicate entry is found --- winpr/libwinpr/utils/collections/StreamPool.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/winpr/libwinpr/utils/collections/StreamPool.c b/winpr/libwinpr/utils/collections/StreamPool.c index f065cbe9a..b0db5a38f 100644 --- a/winpr/libwinpr/utils/collections/StreamPool.c +++ b/winpr/libwinpr/utils/collections/StreamPool.c @@ -248,6 +248,12 @@ static void StreamPool_Remove(wStreamPool* pool, wStream* s) { StreamPool_EnsureCapacity(pool, 1, FALSE); Stream_EnsureValidity(s); + for (size_t x = 0; x < pool->aSize; x++) + { + wStream* cs = pool->aArray[x]; + + WINPR_ASSERT(cs != s); + } pool->aArray[(pool->aSize)++] = s; StreamPool_RemoveUsed(pool, s); } @@ -337,14 +343,14 @@ void StreamPool_Clear(wStreamPool* pool) while (pool->aSize > 0) { - (pool->aSize)--; - Stream_Free(pool->aArray[pool->aSize], TRUE); + wStream* s = pool->aArray[--pool->aSize]; + Stream_Free(s, s->isAllocatedStream); } while (pool->uSize > 0) { - (pool->uSize)--; - Stream_Free(pool->uArray[pool->uSize], TRUE); + wStream* s = pool->uArray[--pool->uSize]; + Stream_Free(s, s->isAllocatedStream); } StreamPool_Unlock(pool);