]> git.ipfire.org Git - thirdparty/bind9.git/commit
Add a limit to the number of RRs in RRSets
authorOndřej Surý <ondrej@isc.org>
Fri, 1 Mar 2024 07:26:07 +0000 (08:26 +0100)
committerOndřej Surý <ondrej@isc.org>
Sun, 28 Jul 2024 14:55:28 +0000 (16:55 +0200)
commitf63d72fb7e5813585c92d7f92bdcc5885cd04edc
tree74dfbe06d4cc2bd90f0eba62c2fbd716026eac2d
parent6fceea4244034ba2b310aa2b1af15c8f4fe7ace6
Add a limit to the number of RRs in RRSets

Previously, the number of RRs in the RRSets were internally unlimited.
As the data structure that holds the RRs is just a linked list, and
there are places where we just walk through all of the RRs, adding an
RRSet with huge number of RRs inside would slow down processing of said
RRSets.

Add a configurable limit to cap the number of the RRs in a single RRSet.
This is enforced at the database (rbtdb, qpzone, qpcache) level and
configured with new max-records-per-type configuration option that can
be configured globally, per-view and per-zone.

(cherry picked from commit 3fbd21f69a1bcbd26c4c00920e7b0a419e8762fc)
30 files changed:
bin/named/config.c
bin/named/server.c
bin/named/zoneconf.c
bin/tests/system/dyndb/driver/db.c
doc/arm/reference.rst
doc/misc/master.zoneopt
doc/misc/mirror.zoneopt
doc/misc/options
doc/misc/options.active
doc/misc/redirect.zoneopt
doc/misc/slave.zoneopt
doc/misc/static-stub.zoneopt
doc/misc/stub.zoneopt
lib/dns/cache.c
lib/dns/db.c
lib/dns/dnsrps.c
lib/dns/ecdb.c
lib/dns/include/dns/cache.h
lib/dns/include/dns/db.h
lib/dns/include/dns/rdataslab.h
lib/dns/include/dns/view.h
lib/dns/include/dns/zone.h
lib/dns/rbtdb.c
lib/dns/rdataslab.c
lib/dns/sdb.c
lib/dns/sdlz.c
lib/dns/view.c
lib/dns/xfrin.c
lib/dns/zone.c
lib/isccfg/namedconf.c