From: Igor Putovny Date: Wed, 20 Sep 2023 11:05:49 +0000 (+0200) Subject: Delete trie during aggregator shutdown X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4dffb687f1e9f78d983ae2da059c7d558b24daea;p=thirdparty%2Fbird.git Delete trie during aggregator shutdown --- diff --git a/proto/aggregator/aggregator.c b/proto/aggregator/aggregator.c index ac290adf8..96cce78bc 100644 --- a/proto/aggregator/aggregator.c +++ b/proto/aggregator/aggregator.c @@ -109,7 +109,24 @@ remove_node(struct trie_node *node) } static void +delete_trie(struct trie_node *node) { + assert(node != NULL); + + if (is_leaf(node)) + { + remove_node(node); + return; + } + + if (node->child[0]) + delete_trie(node->child[0]); + + if (node->child[1]) + delete_trie(node->child[1]); + + assert(is_leaf(node)); + delete_trie(node); } /* @@ -1242,6 +1259,9 @@ aggregator_shutdown(struct proto *P) } HASH_WALK_END; + delete_trie(p->root); + p->root = NULL; + return PS_DOWN; }