From: Nick Porter Date: Mon, 24 Mar 2025 20:29:18 +0000 (+0000) Subject: Use correct itterator to free htrie cache X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e88ede2d635fbf2d19a441e94f7e6fb16c36354b;p=thirdparty%2Ffreeradius-server.git Use correct itterator to free htrie cache --- diff --git a/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c b/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c index 9ef92ff29fe..bf16d9d3b1a 100644 --- a/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c +++ b/src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c @@ -393,14 +393,12 @@ static int mod_detach(module_detach_ctx_t const *mctx) rlm_cache_htrie_t *driver = talloc_get_type_abort(mctx->mi->data, rlm_cache_htrie_t); if (driver->cache) { - fr_rb_iter_inorder_t iter; - void *data; - - for (data = fr_rb_iter_init_inorder(&iter, driver->cache); - data; - data = fr_rb_iter_next_inorder(&iter)) { - fr_rb_iter_delete_inorder(&iter); - talloc_free(data); + rlm_cache_entry_t *c; + + while ((c = fr_heap_peek(driver->heap))) { + fr_heap_extract(&driver->heap, c); + fr_htrie_delete(driver->cache, c); + talloc_free(c); } }