]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Check the prunelink member of the correct node
authorMichał Kępień <michal@isc.org>
Sat, 2 Mar 2024 05:36:37 +0000 (06:36 +0100)
committerMichał Kępień <michal@isc.org>
Sat, 2 Mar 2024 05:37:53 +0000 (06:37 +0100)
Commit 37101c7c8abbacaf07c30d5094bc6880cf4f7ca0 checks the prunelink
member of the node that was just pruned, not its parent node that was
intended to be examined.  Fix by checking the prunelink member of the
parent node, so that adding the latter to its relevant prunenodes list
twice is properly guarded against.

(cherry picked from commit 7d9be24bb1e021560d58949d933274df53a2d69f)

lib/dns/rbtdb.c

index bb154824ab441d0fda311ded719636c241377124..bbeb742d516fac1b10ad1790cc359b7254d6587e 100644 (file)
@@ -2318,7 +2318,7 @@ prune_tree(isc_task_t *task, isc_event_t *event) {
                         * prunenodes list we are currently processing (unless
                         * the parent is already on that list).
                         */
-                       if (!ISC_LINK_LINKED(node, prunelink)) {
+                       if (!ISC_LINK_LINKED(parent, prunelink)) {
                                new_reference(rbtdb, parent,
                                              isc_rwlocktype_write);
                                ISC_LIST_APPEND(rbtdb->prunenodes[locknum],