]> git.ipfire.org Git - thirdparty/bind9.git/log
thirdparty/bind9.git
7 months agofixup! add debugging 5578-tracker-parent-fetch-debugging
Ondřej Surý [Wed, 22 Oct 2025 18:54:24 +0000 (20:54 +0200)] 
fixup! add debugging

7 months agofixup! Detect resolution loops between fetches
Ondřej Surý [Wed, 22 Oct 2025 18:46:06 +0000 (20:46 +0200)] 
fixup! Detect resolution loops between fetches

7 months agoadd debugging
Ondřej Surý [Wed, 22 Oct 2025 18:41:01 +0000 (20:41 +0200)] 
add debugging

7 months agoDetect resolution loops between fetches
Ondřej Surý [Wed, 22 Oct 2025 17:25:55 +0000 (19:25 +0200)] 
Detect resolution loops between fetches

Maintain the relationship between the parent and child fetch and when
creating a new child fetch, properly check the resolution loops that
would lead to a new fetch would join one of the parent's fetch contexts.

7 months agoMerge tag 'v9.21.14'
Michał Kępień [Wed, 22 Oct 2025 16:13:34 +0000 (18:13 +0200)] 
Merge tag 'v9.21.14'

7 months agochg: ci: Fail when spatch can't process source code
Michal Nowak [Wed, 22 Oct 2025 11:27:45 +0000 (13:27 +0200)] 
chg: ci: Fail when spatch can't process source code

Sometimes spatch fails to process the source code:

    EXN: Failure("replacement: node 80: {7[1,2,30,31,32] in isc__nm_base64_to_base64url reachable by inconsistent control-flow paths") in ./lib/isc/netmgr/http.c

Closes #5567

Merge branch '5567-spatch-detect-more-error-conditions' into 'main'

See merge request isc-projects/bind9!11115

7 months agoUse DNS_SIGTYPEPAIR instead of DNS_SIGTYPE
Michal Nowak [Tue, 21 Oct 2025 09:34:54 +0000 (11:34 +0200)] 
Use DNS_SIGTYPEPAIR instead of DNS_SIGTYPE

After 74fe3db37c65e997b82b81e5685b65cf19818646, there's no such thing as
DNS_SIGTYPE.

7 months agoUse SET_IF_NOT_NULL in isc__nm_base64*
Michal Nowak [Tue, 21 Oct 2025 09:00:36 +0000 (11:00 +0200)] 
Use SET_IF_NOT_NULL in isc__nm_base64*

7 months agoSpawn coccinelle CI job when util/check-cocci.sh was touched
Michal Nowak [Mon, 20 Oct 2025 15:58:37 +0000 (17:58 +0200)] 
Spawn coccinelle CI job when util/check-cocci.sh was touched

7 months agoFail when spatch can't process source code
Michal Nowak [Mon, 20 Oct 2025 15:36:36 +0000 (17:36 +0200)] 
Fail when spatch can't process source code

Sometimes spatch fails to process the source code:

    EXN: Failure("replacement: node 80: {7[1,2,30,31,32] in isc__nm_base64_to_base64url reachable by inconsistent control-flow paths") in ./lib/isc/netmgr/http.c

7 months agonew: dev: run individual spatch form check-cocci.sh
Colin Vidal [Wed, 22 Oct 2025 07:16:52 +0000 (09:16 +0200)] 
new: dev: run individual spatch form check-cocci.sh

Add util/check-cocci.sh support for a command-line argument which is a
path to a spatch file. Running `util/check-cocci.sh` runs all the spatch
in `cocci` folder. Running `util/check-cocci.sh cocci/foo.spatch` only
run the spatch `cocci/foo.spatch`.

Any command line parameters after `--` are forwarded to `spatch`
command, for instance:

`util/check-cocci.sh -- --debug`
`util/check-cocci.sh cocci/foo.spatch -- --debug`

Will (1) run all spatch files in cocci/ with --debug spatch option and
(2) run only `cocci/foo.spatch` with --debug options.

Merge branch 'colin/check-cocci-individual-check' into 'main'

See merge request isc-projects/bind9!11096

7 months agorun individual spatch form check-cocci.sh
Colin Vidal [Tue, 14 Oct 2025 12:01:42 +0000 (14:01 +0200)] 
run individual spatch form check-cocci.sh

Add util/check-cocci.sh support for a command-line argument which is a
path to a spatch file. Running `util/check-cocci.sh` runs all the spatch
in `cocci` folder. Running `util/check-cocci.sh cocci/foo.spatch` only
run the spatch `cocci/foo.spatch`.

Any command line parameters after `--` are forwarded to `spatch`
command, for instance:

`util/check-cocci.sh -- --debug`
`util/check-cocci.sh cocci/foo.spatch -- --debug`

Will (1) run all spatch files in cocci/ with --debug spatch option and
(2) run only `cocci/foo.spatch` with --debug options.

7 months agofix: test: Fix typo in tools test's shell path
Mark Andrews [Wed, 22 Oct 2025 05:06:12 +0000 (16:06 +1100)] 
fix: test: Fix typo in tools test's shell path

Merge branch 'pspacek/fix-test-typo' into 'main'

See merge request isc-projects/bind9!10939

7 months agoFix typo in tools test's shell path
Petr Špaček [Wed, 3 Sep 2025 12:07:41 +0000 (14:07 +0200)] 
Fix typo in tools test's shell path

7 months agofix: usr: dnssec-verify now uses exit code 1 when failing due to illegal options
Mark Andrews [Wed, 22 Oct 2025 02:21:52 +0000 (13:21 +1100)] 
fix: usr: dnssec-verify now uses exit code 1 when failing due to illegal options

Previously, dnssec-verify exited with code 0 if the options could not be parsed. This has been fixed.

Closes #5574

Merge branch '5574-dnssec-verify-uses-exit-code-0-when-failing-due-to-illegal-option' into 'main'

See merge request isc-projects/bind9!11106

7 months agodnssec-verify now returns failure on bad arguments
Mark Andrews [Thu, 16 Oct 2025 05:52:57 +0000 (16:52 +1100)] 
dnssec-verify now returns failure on bad arguments

7 months agofix: usr: Fix dnssec-keygen key collision checking for KEY rrtype keys
Mark Andrews [Wed, 22 Oct 2025 01:44:26 +0000 (12:44 +1100)] 
fix: usr: Fix dnssec-keygen key collision checking for KEY rrtype keys

The :iscman:`dnssec-keygen` utility program failed to detect
possible Key ID collisions with the existing keys generated
using the non-default ``-T KEY`` option (e.g. for ``SIG(0)``).
This has been fixed.

Closes #5506

Merge branch '5506-dnssec-keygen-sig0-keys-collision-fix' into 'main'

See merge request isc-projects/bind9!11047

7 months agoDon't log spurious error "bad key type" in findmatchingkeys
Mark Andrews [Mon, 20 Oct 2025 05:17:38 +0000 (16:17 +1100)] 
Don't log spurious error "bad key type" in findmatchingkeys

7 months agoFix dnssec-keygen key collision checking for KEY rrtype keys
Aram Sargsyan [Thu, 2 Oct 2025 12:52:12 +0000 (12:52 +0000)] 
Fix dnssec-keygen key collision checking for KEY rrtype keys

When generating a new key, dnssec-keygen checks for possible
key ID collisions with existing keys. The dnssec.c:findmatchingkeys()
function, which is supposed to get the list of the existing keys,
fails to do that for the existing KEY rrtype keys (i.e. generated
using 'dnssec-keygen -T KEY') because it doesn't pass down to the
dst_key_fromnamedfile() -> dst_key_read_public() functions the type
of the keys it's interested in. Fix the issue by introducing a new
function parameter which tells in which type of keys the caller is
currently interested in.

7 months agonew: test: Add module-specific python setup to system tests
Nicki Křížek [Tue, 21 Oct 2025 14:04:30 +0000 (16:04 +0200)] 
new: test: Add module-specific python setup to system tests

During the system test execution, allow use of module-specific setup()
function in addition to the setup.sh script which this function should
ultimately replace.

The purpose of setup() is two-fold. First, it can execute any commands
needed to create the initial conditions for the test, such as creating
key materials, manipulating files etc. Second, it should return any
test-specific template values as a dictionary. Those will be used to
render the jinja2 templates.

Merge branch 'nicki/pytest-add-python-setup-func' into 'main'

See merge request isc-projects/bind9!10983

7 months agoUse common name for post-startup server functions
Nicki Křížek [Tue, 16 Sep 2025 14:28:24 +0000 (16:28 +0200)] 
Use common name for post-startup server functions

Unify the names of autouse module-wide fixtures that perform
after_servers_start() setup. The consistent naming doesn't just help
readability, but also makes it simpler for the vulture exception (since
it doesn't properly deal with autouse fixtures).

7 months agoUse bootstrap() in pytest where applicable
Nicki Křížek [Thu, 25 Sep 2025 15:30:12 +0000 (17:30 +0200)] 
Use bootstrap() in pytest where applicable

Replace the autouse fixtures which were only used to change the initial
server configuration into proper bootstrap() functions. This gets rid of
an extraneous reconfigure.

In the tests_validation_many_anchors.py, split the fixture into a proper
bootstrap() and a separate test for checking the expected log lines for
the ignored keys. Previously, the test was broken - it should check for
all the messages being present in the log, and some of the keys are
actually initial-key rather than static-key. This has been fixed in the
parametrized test.

7 months agoAdd module-specific python setup to system tests
Nicki Křížek [Wed, 10 Sep 2025 09:09:41 +0000 (11:09 +0200)] 
Add module-specific python setup to system tests

During the system test execution, allow use of module-specific
bootstrap() function in addition to the setup.sh script which this
function should ultimately replace.

The purpose of bootstrap() is two-fold. First, it can execute any
commands needed to create the initial conditions for the test, such as
creating key materials, manipulating files etc. Second, it should return
any test-specific template values as a dictionary. Those will be used to
render the jinja2 templates.

7 months agorem: doc: Remove stub chapter about load balancing from ARM
Petr Špaček [Tue, 21 Oct 2025 09:42:12 +0000 (09:42 +0000)] 
rem: doc: Remove stub chapter about load balancing from ARM

Related: !6610

Merge branch 'pspacek/doc-remove-load-balancing' into 'main'

See merge request isc-projects/bind9!11117

7 months agoRemove stub chapter about load balancing from ARM
Petr Špaček [Tue, 21 Oct 2025 07:18:03 +0000 (09:18 +0200)] 
Remove stub chapter about load balancing from ARM

Clearly Support wants this in Knowledge base, so let's comply.

Related: !6610

7 months agonew: ci: Update Clang to version 21
Michal Nowak [Tue, 21 Oct 2025 09:10:03 +0000 (11:10 +0200)] 
new: ci: Update Clang to version 21

Merge branch 'mnowak/llvm-21' into 'main'

See merge request isc-projects/bind9!10877

7 months agoUse clang-format-21 to update formatting
Michal Nowak [Thu, 21 Aug 2025 12:57:36 +0000 (14:57 +0200)] 
Use clang-format-21 to update formatting

7 months agoUpdate Clang to version 21
Michal Nowak [Thu, 21 Aug 2025 11:12:23 +0000 (13:12 +0200)] 
Update Clang to version 21

7 months agofix: nil: simplify dns_dumpctx API
Evan Hunt [Tue, 21 Oct 2025 04:58:27 +0000 (04:58 +0000)] 
fix: nil: simplify dns_dumpctx API

the functions dns_dumpctx_db() and dns_dumpctx_version() are used in
only one place, to get the serial number of the version being dumped.
it's simpler to expose the serial number through its own call,
dns_dumpctx_serial(), and remove the others.

Merge branch 'each-cleanup-dumpctx' into 'main'

See merge request isc-projects/bind9!10937

7 months agosimplify dns_dumpctx API
Evan Hunt [Wed, 3 Sep 2025 06:59:35 +0000 (23:59 -0700)] 
simplify dns_dumpctx API

the functions dns_dumpctx_db() and dns_dumpctx_version() are used in
only one place, to get the serial number of the version being dumped.
it's simpler to expose the serial number through its own call,
dns_dumpctx_serial(), and remove the others.

7 months agofix: nil: Fix parse_dnskey in bin/dnssec/dnssec-ksr.c was failing to reset comments
Mark Andrews [Mon, 20 Oct 2025 00:31:22 +0000 (11:31 +1100)] 
fix: nil: Fix parse_dnskey in bin/dnssec/dnssec-ksr.c was failing to reset comments

If dns_name_fromtext failed or the subsequent dns_name_compare
failed the lexer's comments state wasn't cleaned up.

Closes #5581

Merge branch '5581-parse_dnskey-in-lib-dns-skr-c-was-failing-to-reset-comments' into 'main'

See merge request isc-projects/bind9!11109

7 months agoFix parse_dnskey in bin/dnssec/dnssec-ksr.c was failing to reset comments
Mark Andrews [Fri, 17 Oct 2025 04:24:04 +0000 (15:24 +1100)] 
Fix parse_dnskey in bin/dnssec/dnssec-ksr.c was failing to reset comments

If dns_name_fromtext failed or the subsequent dns_name_compare
failed the lexer's comments state wasn't cleaned up.

7 months agofix: ci: Delete tarball after unpacking in CI jobs
Štěpán Balážik [Sun, 19 Oct 2025 19:46:56 +0000 (19:46 +0000)] 
fix: ci: Delete tarball after unpacking in CI jobs

This was overlooked in Meson migration.

Merge branch 'stepan/delete-tarball-after-unpacking' into 'main'

See merge request isc-projects/bind9!11111

7 months agoDelete tarball after unpacking in CI jobs
Štěpán Balážik [Wed, 15 Oct 2025 18:40:16 +0000 (20:40 +0200)] 
Delete tarball after unpacking in CI jobs

This was overlooked in Meson migration.

7 months agochg: dev: mem: checkfree assertion after debug list dump
Colin Vidal [Sun, 19 Oct 2025 08:38:18 +0000 (10:38 +0200)] 
chg: dev: mem: checkfree assertion after debug list dump

When a memory context is destroyed, if the `checkfree` property is set,
the program assert there is no remaining allocation. If there are and
assertions are enabled, the program immediately stops.

However, if memory trace/record debug is enabled, the dump of
outstanding allocation won't be printed as it is done after the
no remaining allocation assertion check.

This moves the no remaining allocation assertion check after the dump of
outstanding allocations, so it is still possible to figure out what's
still allocated by this memory context.

Merge branch 'colin/mem-checkfree-check-after-debuglist' into 'main'

See merge request isc-projects/bind9!11110

7 months agocheck memory context validity before mem_destory
Colin Vidal [Sat, 18 Oct 2025 15:44:27 +0000 (17:44 +0200)] 
check memory context validity before mem_destory

Add a magic number check to ensure the memory context validity before
destorying it.

This check is needed now as it was done before implicitly when
isc_mem_inuse was called, but isc_mem_inuse is now called later (to be
able to dump the outstanding allocations).

7 months agomem: checkfree assertion after debug list dump
Colin Vidal [Fri, 17 Oct 2025 08:54:09 +0000 (10:54 +0200)] 
mem: checkfree assertion after debug list dump

When a memory context is destroyed, if the `checkfree` property is set,
the program assert there is no remaining allocation. If there are and
assertions are enabled, the program immediately stops.

However, if memory trace/record debug is enabled, the dump of
outstanding allocation won't be printed as it is done after the
no remaining allocation assertion check.

This moves the no remaining allocation assertion check after the dump of
outstanding allocations, so it is still possible to figure out what's
still allocated by this memory context.

7 months agoUpdate BIND version for release v9.21.14
Michał Kępień [Sat, 18 Oct 2025 09:48:52 +0000 (11:48 +0200)] 
Update BIND version for release

7 months agonew: doc: Prepare documentation for BIND 9.21.14
Michał Kępień [Sat, 18 Oct 2025 09:46:04 +0000 (11:46 +0200)] 
new: doc: Prepare documentation for BIND 9.21.14

Merge branch 'michal/prepare-documentation-for-bind-9.21.14' into 'v9.21.14-release'

See merge request isc-private/bind9!867

7 months agoRemove reuse annotations for unused m4 libtool files
Nicki Křížek [Mon, 6 Oct 2025 15:45:07 +0000 (17:45 +0200)] 
Remove reuse annotations for unused m4 libtool files

The files in question are no longer included in the git tree and
distributed with the code. Remove the reuse annotations as they caused
issues with reuse 6.0.0, as multiline annotation for
SPDX-FileCopyrightText breaks the parsing.

(cherry picked from commit e77f349240d1f71953cfe26cf0a1417e5c085493)

7 months agoPrepare release notes for BIND 9.21.14
Michał Kępień [Sat, 18 Oct 2025 07:47:28 +0000 (09:47 +0200)] 
Prepare release notes for BIND 9.21.14

7 months agoPrepare changelog for BIND 9.21.14
Michał Kępień [Sat, 18 Oct 2025 07:47:28 +0000 (09:47 +0200)] 
Prepare changelog for BIND 9.21.14

7 months agofix: usr: Fix the assertion failure in the selfsigned DNSKEY handling
Michał Kępień [Sat, 18 Oct 2025 07:39:35 +0000 (09:39 +0200)] 
fix: usr: Fix the assertion failure in the selfsigned DNSKEY handling

The selfsigned_dnskey() function can now return all the return codes
that dns_dnssec_keyfromrdata() can return and this would cause an
assertion failure as we were not expecting new isc_result_t codes.

Closes isc-projects/bind9#5343

Merge branch 'ondrej/security-fix-crash-in-selfsigned-key-handling' into 'v9.21.14-release'

See merge request isc-private/bind9!865

7 months agofix: usr: Report when a zone reload is already in progress
Evan Hunt [Fri, 17 Oct 2025 20:36:32 +0000 (20:36 +0000)] 
fix: usr: Report when a zone reload is already in progress

If a zone reload was already in progress when `rndc reload <zone>` was
run, the message returned was "zone reload queued", which was technically
correct, but it was identical to the message returned when a reload
was not in progress. Consequently, a user could issue two reload commands
without realizing that only one reload had actually taken place. This has
been addressed by changing the message returned to "zone reload was already queued".

Closes #5140

Merge branch '5140-report-reload-in-progress' into 'main'

See merge request isc-projects/bind9!10849

7 months agoreport when zone reload already in progress
Evan Hunt [Wed, 13 Aug 2025 20:15:23 +0000 (13:15 -0700)] 
report when zone reload already in progress

if a zone reload is already in progress when 'rndc reload <zone>' is
run, currently the message returned in "zone reload queued", which
is correct, but it's identical to the message returned when a reload
was *not* in progress, so the user can't easily tell what happened.
a user could reload a zone twice and not realize that only one
reload actually took place.

this has been addressed by changing the message returned to
"zone reload was already queued".

a new result code ISC_R_LOADING has been added to signal this
condition, taking the place of ISC_R_RELOAD, which was obsolete
and has been removed.

7 months agofix: test: fix random failure on synthrecord system test
Colin Vidal [Fri, 17 Oct 2025 20:08:54 +0000 (22:08 +0200)] 
fix: test: fix random failure on synthrecord system test

One of the synthrecord system tests uses a test function to generate an expected name based on some randomly generated IPv6 (using Hypothesis). Turns out the test function generating the name didn't handle the case where the label which encodes the IPv6 could have a leading or trailing '-' character. (The plugin needs to add a leading or trailing 0 so as not to break IDN compatibility.)

Merge branch 'colin/fix-synthrecord-v6test' into 'main'

See merge request isc-projects/bind9!11073

7 months agofix random failure on synthrecord system test
Colin Vidal [Fri, 10 Oct 2025 07:35:05 +0000 (09:35 +0200)] 
fix random failure on synthrecord system test

One of the synthrecord system tests uses a test function to generate an
expected name based on some randomly generated IPv6 (using Hypothesis).
Turns out the test function generating the name didn't handle the case
where the label which encodes the IPv6 could have a leading or trailing
'-' character. (The plugin needs to add a leading or trailing 0 so as
not to break IDN compatibility.)

7 months agoFix the assertion failure in the selfsigned DNSKEY handling
Ondřej Surý [Mon, 13 Oct 2025 12:10:06 +0000 (14:10 +0200)] 
Fix the assertion failure in the selfsigned DNSKEY handling

The selfsigned_dnskey() function can now return all the return codes
that dns_dnssec_keyfromrdata() can return and this would cause an
assertion failure as we were not expecting new isc_result_t codes.

7 months agochg: dev: Change the CONTRIBUTING to use Developer's Certificate of Origin 1.1
Ondřej Surý [Thu, 16 Oct 2025 16:31:52 +0000 (18:31 +0200)] 
chg: dev: Change the CONTRIBUTING to use Developer's Certificate of Origin 1.1

Merge branch 'ondrej/developer-certificate-of-origin' into 'main'

See merge request isc-projects/bind9!11108

7 months agoChange the CONTRIBUTING to use Developer's Certificate of Origin 1.1
Ondřej Surý [Thu, 16 Oct 2025 16:23:17 +0000 (18:23 +0200)] 
Change the CONTRIBUTING to use Developer's Certificate of Origin 1.1

7 months agofix: nil: Fix the type in Feature Request template
Ondřej Surý [Thu, 16 Oct 2025 15:27:38 +0000 (17:27 +0200)] 
fix: nil: Fix the type in Feature Request template

Merge branch 'ondrej/no-ai-templates-fixup' into 'main'

See merge request isc-projects/bind9!11107

7 months agoFix the type in Feature Request template
Ondřej Surý [Thu, 16 Oct 2025 15:14:16 +0000 (17:14 +0200)] 
Fix the type in Feature Request template

7 months agofix: dev: Ensure correct result from check_signer()
Evan Hunt [Thu, 16 Oct 2025 05:42:15 +0000 (05:42 +0000)] 
fix: dev: Ensure correct result from check_signer()

It was possible for the result to be overwritten after a validation failure, causing `check_signer()` to return success when it should have returned an error.

Closes #5575

Merge branch '5575-ensure-correct-result-from-check_signer' into 'main'

See merge request isc-projects/bind9!11103

7 months agoEnsure correct result from check_signer()
Evan Hunt [Wed, 15 Oct 2025 15:06:25 +0000 (08:06 -0700)] 
Ensure correct result from check_signer()

It was possible for the result to be overwritten after a
validation failure, causing check_signer() to return success
when it should have returned an error.

Co-Authored-By: Ondřej Surý <ondrej@isc.org>
7 months agodoc: nil: Add a section about AI use in BIND 9 issue templates
Ondřej Surý [Thu, 16 Oct 2025 05:04:19 +0000 (07:04 +0200)] 
doc: nil: Add a section about AI use in BIND 9 issue templates

Generally speaking, no AI generated slop is permitted.  If AI has been
used to find an actual problem, the findings need to be verified by a
person, and the report should be written by the person.  No copy and
paste is allowed.  Anyone reporting the problem needs to be able to
verify the problem independently of the AI.

Merge branch 'ondrej/no-ai-templates' into 'main'

See merge request isc-projects/bind9!11105

7 months agoAdd a section about AI use in BIND 9 issue templates
Ondřej Surý [Thu, 16 Oct 2025 04:58:12 +0000 (06:58 +0200)] 
Add a section about AI use in BIND 9 issue templates

Generally speaking, no AI generated slop is permitted.  If AI has been
used to find an actual problem, the findings need to be verified by a
person, and the report should be written by the person.  No copy and
paste is allowed.  Anyone reporting the problem needs to be able to
verify the problem independently of the AI.

7 months agofix: test: multisigner test can leave created.* and unused.* files
Mark Andrews [Thu, 16 Oct 2025 00:34:11 +0000 (11:34 +1100)] 
fix: test: multisigner test can leave created.* and unused.* files

Expect created.* and unused.* files at the end of running
the multisigner test.

Closes #5565

Merge branch '5565-multisigner-test-can-leave-created-and-unused-files' into 'main'

See merge request isc-projects/bind9!11089

7 months agoExpect created.* and unused.* files
Mark Andrews [Tue, 14 Oct 2025 02:40:13 +0000 (13:40 +1100)] 
Expect created.* and unused.* files

7 months agofix: test: Fix synthrecord system test fails on MacOS
Nicki Křížek [Wed, 15 Oct 2025 08:54:01 +0000 (10:54 +0200)] 
fix: test: Fix synthrecord system test fails on MacOS

Don't hardcode shared library extension.

Closes #5573

Merge branch '5573-synthrecord-system-test-fails-on-macos' into 'main'

See merge request isc-projects/bind9!11098

7 months agoDon't hardcode shared library extension
Mark Andrews [Wed, 15 Oct 2025 06:51:55 +0000 (17:51 +1100)] 
Don't hardcode shared library extension

7 months agofix: test: "nextpart" piped to "grep -q" doesn't work as expected
Mark Andrews [Tue, 14 Oct 2025 07:27:46 +0000 (18:27 +1100)] 
fix: test: "nextpart" piped to "grep -q" doesn't work as expected

`nextpart file | grep -q` doesn't work as expected.  `grep -q` is not
required to read all of the input and that causes `nextpart` to fail.

Closes #5566

Merge branch '5566-nextpart-piped-to-grep-q-doesn-t-work-as-expected' into 'main'

See merge request isc-projects/bind9!11090

7 months ago'nextpart' and 'grep -q' don't work together
Mark Andrews [Tue, 14 Oct 2025 05:41:50 +0000 (16:41 +1100)] 
'nextpart' and 'grep -q' don't work together

'nextpart file | grep -q' doesn't work as expected.  'grep -q' is not
required to read all of the input and that causes 'nextpart' to fail.

7 months agofix: nil: Fix parse_rr in lib/dns/skr.c was failing to reset the comments
Mark Andrews [Tue, 14 Oct 2025 06:46:05 +0000 (17:46 +1100)] 
fix: nil: Fix parse_rr in lib/dns/skr.c was failing to reset the comments

If dns_name_fromtext failed or the subsequent dns_name_compare
failed the lexer's comments state wasn't cleaned up.

Closes #5564

Merge branch '5564-fix-bug-in-skr-c-parse_rr-on-error-path' into 'main'

See merge request isc-projects/bind9!11088

7 months agoFix parse_rr in lib/dns/skr.c was failing to reset the comments
Mark Andrews [Tue, 14 Oct 2025 00:26:45 +0000 (11:26 +1100)] 
Fix parse_rr in lib/dns/skr.c was failing to reset the comments

If dns_name_fromtext failed or the subsequent dns_name_compare
failed the lexer's comments state wasn't cleaned up.

7 months agofix: doc: Remove mentions of the bind-workers mailing list
Štěpán Balážik [Mon, 13 Oct 2025 16:02:30 +0000 (16:02 +0000)] 
fix: doc: Remove mentions of the bind-workers mailing list

It has been shutdown back in 2022.

Merge branch 'stepan/remove-bind-workers-from-readme' into 'main'

See merge request isc-projects/bind9!11061

7 months agoRemove mentions of the bind-workers mailing list
Štěpán Balážik [Tue, 7 Oct 2025 17:32:45 +0000 (19:32 +0200)] 
Remove mentions of the bind-workers mailing list

It has been shutdown back in 2022.

7 months agochg: doc: Set up version for BIND 9.21.15
Michał Kępień [Mon, 13 Oct 2025 13:42:54 +0000 (15:42 +0200)] 
chg: doc: Set up version for BIND 9.21.15

Merge branch 'michal/set-up-version-for-bind-9.21.15' into 'main'

See merge request isc-projects/bind9!11083

7 months agoUpdate BIND version to 9.21.15-dev
Michał Kępień [Mon, 13 Oct 2025 13:38:56 +0000 (15:38 +0200)] 
Update BIND version to 9.21.15-dev

7 months agorem: dev: Remove "bindkeys-file" option
Evan Hunt [Mon, 13 Oct 2025 07:12:41 +0000 (07:12 +0000)] 
rem: dev: Remove "bindkeys-file" option

The `bindkeys-file` option was only used for testing purposes, and has now been replaced with a `-T bindkeys=<filename>` option for `named`.

Merge branch 'each-remove-bindkeys-file' into 'main'

See merge request isc-projects/bind9!11081

7 months agoremove "bindkeys-file" option
Evan Hunt [Sat, 11 Oct 2025 01:27:41 +0000 (18:27 -0700)] 
remove "bindkeys-file" option

The bindkeys-file option was only used for testing purposes, and
has now been replaced with a "-T bindkeys=<filename>" option for
named.

7 months agoclean up bind.keys
Evan Hunt [Sat, 11 Oct 2025 00:41:07 +0000 (17:41 -0700)] 
clean up bind.keys

the comments in the bind.keys file were outdated; the file now only
exists to be converted into bind.keys.h and compiled into named and
delv.

some tests also referenced it, and have been cleaned up, since
the keys in it are already built into named.

7 months agochg: nil: Add dnssec-policy text for dnssec-importkey alessio/rdataslab-inline-baseline
Matthijs Mekking [Fri, 10 Oct 2025 17:34:59 +0000 (17:34 +0000)] 
chg: nil: Add dnssec-policy text for dnssec-importkey

:program:`dnssec-importkey` should not be used to import DNSKEY records from other providers (for example when setting up multi-signer). Clarify this in the manpage.

Merge branch 'matthijs-clarify-import-key-dnssec-policy' into 'main'

See merge request isc-projects/bind9!11064

7 months agoAdd dnssec-policy text for dnssec-importkey
Matthijs Mekking [Wed, 8 Oct 2025 07:44:54 +0000 (09:44 +0200)] 
Add dnssec-policy text for dnssec-importkey

You should not use dnssec-importkey to import DNSKEY records from
other providers (for example when setting up multi-signer).

Clarify this in the manpage.

7 months agofix: test: Disable keyfromlabel collision avoidance in tests
Nicki Křížek [Fri, 10 Oct 2025 09:24:39 +0000 (11:24 +0200)] 
fix: test: Disable keyfromlabel collision avoidance in tests

With the collision avoidance on, some of the tests would occasionally
fail. None of the tests using keyfromlabel are revoking the keys so it
should be safe to disable it.

Closes #5554

Merge branch '5554-disable-keyfromlabel-collision-avoidance-in-tests' into 'main'

See merge request isc-projects/bind9!11066

7 months agoDisable keyfromlabel collision avoidance in tests
Nicki Křížek [Wed, 8 Oct 2025 09:35:24 +0000 (11:35 +0200)] 
Disable keyfromlabel collision avoidance in tests

With the collision avoidance on, some of the tests would occasionally
fail. None of the tests using keyfromlabel are revoking the keys so it
should be safe to disable it.

7 months agofix: nil: Update the semantic patches to use new coccinelle syntax
Ondřej Surý [Wed, 8 Oct 2025 17:17:45 +0000 (19:17 +0200)] 
fix: nil: Update the semantic patches to use new coccinelle syntax

Merge branch 'ondrej/update-semantic-patches' into 'main'

See merge request isc-projects/bind9!11067

7 months agoApply the changes from updated set_if_not_null semantic patch
Ondřej Surý [Wed, 8 Oct 2025 15:34:12 +0000 (17:34 +0200)] 
Apply the changes from updated set_if_not_null semantic patch

7 months agoDisable the unreachable semantic patch
Ondřej Surý [Wed, 8 Oct 2025 15:41:35 +0000 (17:41 +0200)] 
Disable the unreachable semantic patch

The UNREACHABLE() semantic patch seems to be broken with coccinelle
1.3.0 - it spins undefinitely.  Disable it for now.

7 months agoUpdate the semantic patches to use new development ideas
Ondřej Surý [Wed, 8 Oct 2025 15:03:18 +0000 (17:03 +0200)] 
Update the semantic patches to use new development ideas

Co-Authored-By: Markus Elfring <Markus.Elfring@web.de>
7 months agochg: test: Remove KeyProperties property expect
Matthijs Mekking [Wed, 8 Oct 2025 08:33:04 +0000 (08:33 +0000)] 
chg: test: Remove KeyProperties property expect

We agreed to make "expect" a direct attribute of KeyProperties, but it turns out the property is unused, so we can just remove it.

Closes #5278

Merge branch '5278-kasp-system-test-follow-up-1' into 'main'

See merge request isc-projects/bind9!11042

7 months agoMake properties direct attribute of KeyProperties
Matthijs Mekking [Thu, 2 Oct 2025 08:22:54 +0000 (10:22 +0200)] 
Make properties direct attribute of KeyProperties

There is no real reason to keep those in a dictionary.

7 months agoRemove KeyProperties property expect
Matthijs Mekking [Wed, 1 Oct 2025 14:35:20 +0000 (16:35 +0200)] 
Remove KeyProperties property expect

This property is unused, so we can just remove it.

7 months agorem: dev: remove dns_zone_dump
Colin Vidal [Wed, 8 Oct 2025 07:37:50 +0000 (09:37 +0200)] 
rem: dev: remove dns_zone_dump

Zone API `dns_zone_dump` is dead code in 9.21 (and was also dead code at
least in 9.20), removing it.

Merge branch 'colin/remove-dns_zone_dump' into 'main'

See merge request isc-projects/bind9!11060

7 months agoremove dns_zone_dump
Colin Vidal [Tue, 7 Oct 2025 09:42:04 +0000 (11:42 +0200)] 
remove dns_zone_dump

Zone API `dns_zone_dump` is dead code in 9.21 (and was also dead code at
least in 9.20), removing it.

7 months agofix: nil: Exclude lib/dns/include/dns/db.h from unsigned-int.spatch
Mark Andrews [Wed, 8 Oct 2025 06:25:05 +0000 (17:25 +1100)] 
fix: nil: Exclude lib/dns/include/dns/db.h from unsigned-int.spatch

Disable unsigned-int spatch in db.h to silence the following error from coccinelle v1.1:

```
EXN: Failure("./lib/dns/include/dns/db.h: 188: try to delete an expanded token: unsigned") in ./lib/dns/include/dns/db.h
```

Merge branch 'marka-cocci-fix' into 'main'

See merge request isc-projects/bind9!11062

7 months agoExclude lib/dns/include/dns/db.h from unsigned-int.spatch
Mark Andrews [Wed, 8 Oct 2025 01:35:08 +0000 (12:35 +1100)] 
Exclude lib/dns/include/dns/db.h from unsigned-int.spatch

Disable unsigned-int spatch in db.h to silence the following error
from coccinelle v1.1:

    EXN: Failure("./lib/dns/include/dns/db.h: 188: try to delete an expanded token: unsigned") in ./lib/dns/include/dns/db.h

7 months agofix: nil: synthrecord: fixing code nits
Colin Vidal [Tue, 7 Oct 2025 05:42:33 +0000 (07:42 +0200)] 
fix: nil: synthrecord: fixing code nits

Fixing an (invalid) Coverity NULL-dereference (ns_pluginctx_t is always
defined) by enforcing a REQUIRE, and add a missing return value check.

Closes #1586

Merge branch 'colin/synthrecord-fixup' into 'main'

See merge request isc-projects/bind9!11053

7 months agosynthrecord: fixing code nits
Colin Vidal [Sun, 5 Oct 2025 13:20:57 +0000 (15:20 +0200)] 
synthrecord: fixing code nits

Fixing an (invalid) Coverity NULL-dereference (ns_pluginctx_t is always
defined) by enforcing a REQUIRE, and add a missing return value check.

7 months agofix: ci: Remove reuse annotations for unused m4 libtool files
Nicki Křížek [Mon, 6 Oct 2025 16:04:51 +0000 (18:04 +0200)] 
fix: ci: Remove reuse annotations for unused m4 libtool files

The files in question are no longer included in the git tree and
distributed with the code. Remove the reuse annotations as they caused
issues with reuse 6.0.0, as multiline annotation for
SPDX-FileCopyrightText breaks the parsing.

Merge branch 'nicki/reuse-remove-m4-annotations' into 'main'

See merge request isc-projects/bind9!11056

7 months agoRemove reuse annotations for unused m4 libtool files
Nicki Křížek [Mon, 6 Oct 2025 15:45:07 +0000 (17:45 +0200)] 
Remove reuse annotations for unused m4 libtool files

The files in question are no longer included in the git tree and
distributed with the code. Remove the reuse annotations as they caused
issues with reuse 6.0.0, as multiline annotation for
SPDX-FileCopyrightText breaks the parsing.

7 months agorem: usr: Remove the "tkey-domain" statement
Michał Kępień [Mon, 6 Oct 2025 12:56:10 +0000 (14:56 +0200)] 
rem: usr: Remove the "tkey-domain" statement

The previously deprecated ``tkey-domain`` statement has now been
removed.

Closes #4204

Merge branch '4204-remove-tkey-domain' into 'main'

See merge request isc-projects/bind9!10801

7 months agoRemove "tkey-domain"
Michał Kępień [Mon, 6 Oct 2025 12:14:33 +0000 (14:14 +0200)] 
Remove "tkey-domain"

Since the "tkey-domain" statement has been previously obsoleted, mark it
as ancient to make any attempts to use it a fatal error.

7 months agorem: usr: Remove the "tkey-gssapi-credential" statement
Michał Kępień [Mon, 6 Oct 2025 12:14:10 +0000 (14:14 +0200)] 
rem: usr: Remove the "tkey-gssapi-credential" statement

The previously deprecated ``tkey-gssapi-credential`` statement and all
code related to it have now been removed.

Closes #4204

Merge branch '4204-remove-tkey-gssapi-credential' into 'main'

See merge request isc-projects/bind9!10800

7 months agoSimplify named_tkeyctx_fromconfig()
Michał Kępień [Mon, 6 Oct 2025 11:19:50 +0000 (13:19 +0200)] 
Simplify named_tkeyctx_fromconfig()

With the code handling the "tkey-gssapi-credential" statement removed,
the named_tkeyctx_fromconfig() function can no longer fail.  Update its
return type to void and revise its only call site accordingly.  Clean up
the function's documentation.  Declare the 's' helper variable only in
the scope it is used in to improve readability.

7 months agoRemove "tkey-gssapi-credential" and related code
Michał Kępień [Mon, 6 Oct 2025 11:19:50 +0000 (13:19 +0200)] 
Remove "tkey-gssapi-credential" and related code

Since the "tkey-gssapi-credential" statement has been previously
deprecated, mark it as ancient and remove all code related to it:

  - The code processing the "tkey-gssapi-credential" statement in the
    configuration is the only user of the dst_gssapi_acquirecred() and
    dst_gssapi_releasecred() functions, so remove them along with their
    static helper functions and a backup definition of the
    GSS_KRB5_MECHANISM macro.

  - When calling gss_accept_sec_context(), pass GSS_C_NO_CREDENTIAL
    instead of the credential acquired by gss_acquire_cred().
    (Previously, NULL was passed when "tkey-gssapi-credential" was not
    specified.  Kerberos headers define GSS_C_NO_CREDENTIAL as
    (gss_cred_id_t) 0, so the logic was effectively the same, but using
    the GSS_C_NO_CREDENTIAL macro is more appropriate.)  This renders
    the 'cred' parameter for dst_gssapi_acceptctx() redundant, so remove
    it from the prototype of the latter.  (Contrary to what the
    documentation for dst_gssapi_acceptctx() claims,
    dst_gssapi_releasecred() does not need to subsequently be called to
    free the GSS-API context; a dst_gssapi_deletectx() call in
    gssapi_destroy() takes care of that when the dynamically generated
    TSIG key is destroyed.)

  - Remove the 'gsscred' member from struct dns_tkeyctx, along with its
    related dns_gss_cred_id_t typedef.

Update the relevant sections of the ARM and code comments accordingly.

This makes the "tkey-gssapi-keytab" statement the only way to set up
GSS-TSIG in named.

Remove redundant code from bin/named/tkeyconf.c while at it.

7 months agoStop using "tkey-gssapi-credential" in tests
Michał Kępień [Mon, 6 Oct 2025 11:19:50 +0000 (13:19 +0200)] 
Stop using "tkey-gssapi-credential" in tests

Since the "tkey-gssapi-credential" statement is now deprecated and is
about to be removed, migrate the only system test using it ("nsupdate")
to "tkey-gssapi-keytab".

Currently, the GSS-TSIG parts of the "nsupdate" system test require
properly setting up a combination of:

  - "tkey-gssapi-credential" statements in named.conf files,
  - the KRB5_KTNAME environment variable.

Specifically, this configuration causes named startup to include
acquiring the credential that GSS-API is allowed to match keys against
from a keytab file specified by the KRB5_KTNAME environment variable.

By contrast, the revised configuration uses the "tkey-gssapi-keytab"
statement, which makes GSS-API match keys against any credential present
in the specified keytab file.

Since both keytabs in question (ns9/dns.keytab, ns10/dns.keytab) only
contain a single credential, the two configurations are functionally
equivalent, with the revised one being significantly more readable and
simpler to prepare.

7 months agoUpdate BIND version for release
Michał Kępień [Thu, 2 Oct 2025 16:19:19 +0000 (18:19 +0200)] 
Update BIND version for release

7 months agonew: doc: Prepare documentation for BIND 9.21.13
Michał Kępień [Thu, 2 Oct 2025 16:15:43 +0000 (18:15 +0200)] 
new: doc: Prepare documentation for BIND 9.21.13

Merge branch 'michal/prepare-documentation-for-bind-9.21.13' into 'v9.21.13-release'

See merge request isc-private/bind9!855

7 months agoReorder release notes
Michał Kępień [Thu, 2 Oct 2025 16:12:18 +0000 (18:12 +0200)] 
Reorder release notes

7 months agoTweak and reword release notes
Michał Kępień [Thu, 2 Oct 2025 16:12:18 +0000 (18:12 +0200)] 
Tweak and reword release notes