bind9/lib/dns
Michał Kępień c3377cbfaa
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 24381cc36d)
2024-01-05 12:40:50 +01:00
..
include Limit isc_task_send() overhead for tree pruning 2024-01-05 12:40:50 +01:00
rdata Update sources to Clang 15 formatting 2022-11-29 10:30:34 +01:00
tests Add test for dns_rbtdb overmem purging 2023-07-26 15:20:53 +02:00
win32 Fix windows build, remove external symbols 2024-01-05 11:52:05 +01:00
.gitignore 4394. [func] Add rndc command "dnstap-reopen" to close and 2016-06-24 09:37:04 +10:00
acl.c Simplify way we tag unreachable code with only ISC_UNREACHABLE() 2022-03-25 09:33:51 +01:00
adb.c Update the source code formatting using clang-format-17 2023-10-17 17:56:31 +02:00
badcache.c Update sources to Clang 15 formatting 2022-11-29 10:30:34 +01:00
byaddr.c Update sources to Clang 15 formatting 2022-11-29 10:30:34 +01:00
cache.c Add dns_db_allrdatasets options 2022-12-08 11:20:35 +11:00
callbacks.c Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
catz.c Backport isc_ht API changes from BIND 9.18 2024-01-05 11:52:05 +01:00
client.c Extend dns_db_allrdatasets to control interation results 2022-12-08 11:20:35 +11:00
clientinfo.c allow dns_clientinfo to store client ECS data 2022-01-27 16:08:57 -08:00
compress.c Update sources to Clang 15 formatting 2022-11-29 10:30:34 +01:00
db.c Extend dns_db_allrdatasets to control interation results 2022-12-08 11:20:35 +11:00
dbiterator.c Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
dbtable.c Remove use of the inline keyword used as suggestion to compiler 2022-03-25 09:37:18 +01:00
diff.c Update sources to Clang 15 formatting 2022-11-29 10:30:34 +01:00
dispatch.c Update sources to Clang 15 formatting 2022-11-29 10:30:34 +01:00
dlz.c Remove use of the inline keyword used as suggestion to compiler 2022-03-25 09:37:18 +01:00
dns64.c Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
dnsrps.c Handle iterator options in rpsdb_allrdatasets() 2023-02-01 12:07:11 +01:00
dnssec.c Update sources to Clang 15 formatting 2022-11-29 10:30:34 +01:00
dnstap.c dnstap query_message field was erroneously set with responses 2022-08-31 15:49:25 -07:00
dnstap.proto Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
ds.c Simplify way we tag unreachable code with only ISC_UNREACHABLE() 2022-03-25 09:33:51 +01:00
dst_api.c Update sources to Clang 15 formatting 2022-11-29 10:30:34 +01:00
dst_internal.h Check if key metadata is modified before writing 2022-05-16 10:35:33 +02:00
dst_openssl.h Use autoconf check for BN_GENCB_new() 2022-03-02 09:34:29 +00:00
dst_parse.c Update sources to Clang 15 formatting 2022-11-29 10:30:34 +01:00
dst_parse.h Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
dst_pkcs11.h Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
dst_result.c Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
dyndb.c Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
ecdb.c Extend dns_db_allrdatasets to control interation results 2022-12-08 11:20:35 +11:00
ecs.c Update sources to Clang 15 formatting 2022-11-29 10:30:34 +01:00
fixedname.c Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
forward.c Use sizeof(*ptr) for allocating/freeing memory in forward.c 2023-01-11 13:42:00 +00:00
gen-unix.h Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
gen-win32.h Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
gen.c Update sources to Clang 15 formatting 2022-11-29 10:30:34 +01:00
geoip2.c Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
gssapi_link.c Remove a redundant variable-length array 2022-03-18 17:21:57 +00:00
gssapictx.c Remove use of the inline keyword used as suggestion to compiler 2022-03-25 09:37:18 +01:00
hmac_link.c In hmac_createctx free ctx on isc_hmac_init failure 2023-02-18 10:27:11 +11:00
ipkeylist.c Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
iptable.c Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
journal.c Extend dns_db_allrdatasets to control interation results 2022-12-08 11:20:35 +11:00
kasp.c Remove use of the inline keyword used as suggestion to compiler 2022-03-25 09:37:18 +01:00
key.c Update sources to Clang 15 formatting 2022-11-29 10:30:34 +01:00
keydata.c Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
keymgr.c Force set DS state after 'rndc dnssec -checkds' 2023-01-27 16:09:06 +01:00
keytable.c Handle dns_rdata_fromstruct failure dns_keytable_deletekey 2023-04-03 17:48:31 +02:00
Kyuafile Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
lib.c Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
log.c Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
lookup.c Remove use of the inline keyword used as suggestion to compiler 2022-03-25 09:37:18 +01:00
Makefile.in Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
mapapi Limit isc_task_send() overhead for tree pruning 2024-01-05 12:40:50 +01:00
master.c Update the source code formatting using clang-format-17 2023-10-17 17:56:31 +02:00
masterdump.c Add dns_db_allrdatasets options 2022-12-08 11:20:35 +11:00
message.c Backport isc_ht API changes from BIND 9.18 2024-01-05 11:52:05 +01:00
name.c Use hashtable when parsing a message 2024-01-05 11:52:05 +01:00
ncache.c Correctly set the value of covered in dns_ncache_current 2023-09-18 16:40:54 +10:00
nsec.c Extend dns_db_allrdatasets to control interation results 2022-12-08 11:20:35 +11:00
nsec3.c Update the source code formatting using clang-format-17 2023-10-17 17:56:31 +02:00
nta.c Don't use reference counting in isc_timer unit 2023-01-19 11:28:10 +01:00
openssl_link.c Update sources to Clang 15 formatting 2022-11-29 10:30:34 +01:00
openssldh_link.c Update sources to Clang 15 formatting 2022-11-29 10:30:34 +01:00
opensslecdsa_link.c Update sources to Clang 15 formatting 2022-11-29 10:30:34 +01:00
openssleddsa_link.c Update sources to Clang 15 formatting 2022-11-29 10:30:34 +01:00
opensslrsa_link.c Only declare 'engine' if it is used 2023-10-28 09:01:51 +11:00
order.c Update sources to Clang 15 formatting 2022-11-29 10:30:34 +01:00
peer.c Update sources to Clang 15 formatting 2022-11-29 10:30:34 +01:00
pkcs11.c Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
pkcs11ecdsa_link.c Consistenly use UNREACHABLE() instead of ISC_UNREACHABLE() 2022-03-28 23:28:05 +02:00
pkcs11eddsa_link.c Consistenly use UNREACHABLE() instead of ISC_UNREACHABLE() 2022-03-28 23:28:05 +02:00
pkcs11rsa_link.c Update sources to Clang 15 formatting 2022-11-29 10:30:34 +01:00
portlist.c Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
private.c Update the source code formatting using clang-format-17 2023-10-17 17:56:31 +02:00
rbt.c Limit isc_task_send() overhead for tree pruning 2024-01-05 12:40:50 +01:00
rbtdb.c Limit isc_task_send() overhead for tree pruning 2024-01-05 12:40:50 +01:00
rbtdb.h Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
rcode.c Update sources to Clang 15 formatting 2022-11-29 10:30:34 +01:00
rdata.c Explicitly cast chars to unsigned chars for <ctype.h> functions 2023-09-22 17:10:25 +02:00
rdatalist.c Update sources to Clang 15 formatting 2022-11-29 10:30:34 +01:00
rdatalist_p.h Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
rdataset.c Remove use of the inline keyword used as suggestion to compiler 2022-03-25 09:37:18 +01:00
rdatasetiter.c Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
rdataslab.c Update sources to Clang 15 formatting 2022-11-29 10:30:34 +01:00
request.c Don't use reference counting in isc_timer unit 2023-01-19 11:28:10 +01:00
resolver.c BIND 9.16.37 2023-01-25 21:34:55 +01:00
result.c Update the source code formatting using clang-format-17 2023-10-17 17:56:31 +02:00
rootns.c Suppress reporting upcoming changes in root hints 2023-11-03 03:44:43 +11:00
rpz.c Backport isc_ht API changes from BIND 9.18 2024-01-05 11:52:05 +01:00
rriterator.c Extend dns_db_allrdatasets to control interation results 2022-12-08 11:20:35 +11:00
rrl.c Update sources to Clang 15 formatting 2022-11-29 10:30:34 +01:00
sdb.c Extend dns_db_allrdatasets to control interation results 2022-12-08 11:20:35 +11:00
sdlz.c Extend dns_db_allrdatasets to control interation results 2022-12-08 11:20:35 +11:00
soa.c Remove use of the inline keyword used as suggestion to compiler 2022-03-25 09:37:18 +01:00
ssu.c Update sources to Clang 15 formatting 2022-11-29 10:30:34 +01:00
ssu_external.c Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
stats.c Update sources to Clang 15 formatting 2022-11-29 10:30:34 +01:00
tcpmsg.c Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
time.c Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
timer.c Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
tkey.c Update sources to Clang 15 formatting 2022-11-29 10:30:34 +01:00
tsec.c Simplify way we tag unreachable code with only ISC_UNREACHABLE() 2022-03-25 09:33:51 +01:00
tsig.c Address race in dns_tsigkey_find() 2024-01-05 11:28:25 +01:00
tsig_p.h Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
ttl.c Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
update.c Use 'now' rather than 'inception' in 'add_sigs' 2023-12-19 12:55:03 +11:00
validator.c Reduce the number of verifiations required 2023-04-03 17:48:31 +02:00
version.c Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
view.c dns_view_untrust modifies dnskey->flags when it shouldn't 2023-04-03 17:48:31 +02:00
xfrin.c Revert GL !8123 2023-07-24 11:02:37 +02:00
zone.c Use 'now' rather than 'inception' in 'add_sigs' 2023-12-19 12:55:03 +11:00
zone_p.h Update the copyright information in all files in the repository 2022-01-11 12:22:09 +01:00
zonekey.c Update sources to Clang 15 formatting 2022-11-29 10:30:34 +01:00
zoneverify.c Extend dns_db_allrdatasets to control interation results 2022-12-08 11:20:35 +11:00
zt.c Update sources to Clang 15 formatting 2022-11-29 10:30:34 +01:00