]> git.ipfire.org Git - thirdparty/bind9.git/commit
Limit isc_task_send() overhead for tree pruning
authorMichał Kępień <michal@isc.org>
Thu, 4 Jan 2024 12:39:27 +0000 (13:39 +0100)
committerMichał Kępień <michal@isc.org>
Fri, 5 Jan 2024 11:40:50 +0000 (12:40 +0100)
commitc3377cbfaa44dcb033f5abfb2db031612c8f47d1
tree9e984cc8548a260d3a1d7930260dd2c3480c1c52
parent38a03e5ab9676006b0b07510d23635e19998c3a9
Limit isc_task_send() overhead for tree pruning

Instead of issuing a separate isc_task_send() call for every RBTDB node
that triggers tree pruning, maintain a list of nodes from which tree
pruning can be started from and only issue an isc_task_send() call if
pruning has not yet been triggered by another RBTDB node.

The extra queuing overhead eliminated by this change could be remotely
exploited to cause excessive memory use.

As this change modifies struct dns_rbtnode by adding a new 'prunelink'
member to it, bump MAPAPI to prevent any attempts of loading map-format
zone files created using older BIND 9 versions.

(cherry picked from commit 24381cc36d8528f5a4046fb2614451aeac4cdfc1)
lib/dns/include/dns/rbt.h
lib/dns/mapapi
lib/dns/rbt.c
lib/dns/rbtdb.c