]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Workaround for #439: prevent loops in the reuse rbtree.
authorW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Fri, 5 Mar 2021 12:46:36 +0000 (13:46 +0100)
committerW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Fri, 5 Mar 2021 12:46:36 +0000 (13:46 +0100)
doc/Changelog
services/outside_network.c

index accfaade91e4bdf49f1b339a51557f32a9823b81..d8f88f88caab4fc358e04f0e3867349b294c477b 100644 (file)
@@ -1,3 +1,6 @@
+5 March 2021: Wouter
+       - Workaround for #439: prevent loops in the reuse rbtree.
+
 4 March 2021: Wouter
        - iana portlist update.
        - Fix spurious errors about "Could not generate request: out of
index 18e2c8da9544b34e1cf2515f1ef6cb5b028dea45..d2d8c56f5def8604730119071be6416843fe4069 100644 (file)
@@ -892,6 +892,9 @@ reuse_tcp_remove_tree_list(struct outside_network* outnet,
                /* delete it from reuse tree */
                (void)rbtree_delete(&outnet->tcp_reuse, reuse);
                reuse->node.key = NULL;
+               /* defend against loops on broken tree by zeroing the
+                * rbnode structure */
+               memset(&reuse->node, 0, sizeof(reuse->node));
        }
        /* delete from reuse list */
        if(reuse->item_on_lru_list) {