From e444ce53d7063fb8a3be84bb84a8ea507f3f184d Mon Sep 17 00:00:00 2001 From: Yixue Wang Date: Mon, 26 May 2025 14:27:14 +0800 Subject: [PATCH] [stream] reset pool array size after clearing StreamPool becomes inconsistent after clearing. This might be a problem in some critical situation. Reset pool array size after clearing. --- winpr/libwinpr/utils/collections/StreamPool.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/winpr/libwinpr/utils/collections/StreamPool.c b/winpr/libwinpr/utils/collections/StreamPool.c index 8870f4d2f..f85e439f9 100644 --- a/winpr/libwinpr/utils/collections/StreamPool.c +++ b/winpr/libwinpr/utils/collections/StreamPool.c @@ -369,6 +369,7 @@ void StreamPool_Clear(wStreamPool* pool) struct s_StreamPoolEntry* cur = &pool->aArray[x]; discard_entry(cur, TRUE); } + pool->aSize = 0; if (pool->uSize > 0) { @@ -379,6 +380,7 @@ void StreamPool_Clear(wStreamPool* pool) struct s_StreamPoolEntry* cur = &pool->uArray[x]; discard_entry(cur, TRUE); } + pool->uSize = 0; } StreamPool_Unlock(pool);