From: Igor Putovny Date: Mon, 24 Feb 2025 16:18:28 +0000 (+0100) Subject: Bugfix X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c052620e43362c386bffcfa839fc85e8cabbaf68;p=thirdparty%2Fbird.git Bugfix Assign px_origin of target node in the third pass --- diff --git a/proto/aggregator/trie.c b/proto/aggregator/trie.c index 879c6cb5b..af4599cc2 100644 --- a/proto/aggregator/trie.c +++ b/proto/aggregator/trie.c @@ -797,6 +797,8 @@ aggregator_third_pass(struct aggregator_proto *p, struct trie_node *node) */ aggregator_find_subtree_prefix(node, &prefix, &pxlen, p->addr_type); + ASSERT_DIE(node->selected_bucket == NULL); + /* Select bucket with the lowest ID */ node->selected_bucket = aggregator_select_lowest_id_bucket(p, node); ASSERT_DIE(node->selected_bucket != NULL); @@ -811,6 +813,7 @@ aggregator_third_pass(struct aggregator_proto *p, struct trie_node *node) /* The closest ancestor of the IN_FIB node with a non-null bucket is the node itself */ node->ancestor = node; node->status = IN_FIB; + node->px_origin = (node->px_origin == ORIGINAL) ? ORIGINAL : AGGREGATED; if (node->child[0]) {