From 673ee24d152b1f061d544d957670f34373aef7df Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Wed, 13 Dec 2017 19:11:02 +0200 Subject: [PATCH] lib: mempool-allocfree - make static analyzer happier with pool clearing It was thinking that already freed memory was being accessed. --- src/lib/mempool-allocfree.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/lib/mempool-allocfree.c b/src/lib/mempool-allocfree.c index c2ce901360..66a296c92f 100644 --- a/src/lib/mempool-allocfree.c +++ b/src/lib/mempool-allocfree.c @@ -225,9 +225,12 @@ static void pool_allocfree_clear(pool_t pool) { struct allocfree_pool *apool = container_of(pool, struct allocfree_pool, pool); + struct pool_block *block, *next; - while(apool->blocks != NULL) - pool_allocfree_free(pool, apool->blocks->block); + for (block = apool->blocks; block != NULL; block = next) { + next = block->next; + pool_allocfree_free(pool, block->block); + } i_assert(apool->total_alloc_used == 0 && apool->total_alloc_count == 0); }