]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Use correct itterator to free htrie cache
authorNick Porter <nick@portercomputing.co.uk>
Mon, 24 Mar 2025 20:29:18 +0000 (20:29 +0000)
committerNick Porter <nick@portercomputing.co.uk>
Tue, 25 Mar 2025 11:08:53 +0000 (11:08 +0000)
src/modules/rlm_cache/drivers/rlm_cache_htrie/rlm_cache_htrie.c

index 9ef92ff29fecba8bd04332119d9ea71682a34ebd..bf16d9d3b1a6184a0359b04010f18a3fdbb14561 100644 (file)
@@ -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);
                }
        }