]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Fix trie_remove_prefix() to work with pruned trie
authorIgor Putovny <igor.putovny@nic.cz>
Tue, 4 Mar 2025 14:06:10 +0000 (15:06 +0100)
committerIgor Putovny <igor.putovny@nic.cz>
Tue, 4 Mar 2025 14:06:10 +0000 (15:06 +0100)
proto/aggregator/trie.c

index fcaa9d39aa3d844075fd58f6f3552fb5ca0c8670..07c69049c406046300e142e71a29f293d084c21b 100644 (file)
@@ -472,8 +472,11 @@ aggregator_trie_remove_prefix(struct aggregator_proto *p, ip_addr prefix, u32 px
   for (u32 i = 0; i < pxlen; i++)
   {
     u32 bit = ipa_getbit(prefix, i + ipa_shift[p->addr_type]);
-    node = node->child[bit];
-    ASSERT_DIE(node != NULL);
+
+    if (node->child[bit])
+      node = node->child[bit];
+    else
+      return node;
   }
 
   ASSERT_DIE(node->px_origin == ORIGINAL);