Commit graph

43212 commits

Author SHA1 Message Date
Štěpán Balážik
cde0178801 Use isctest.asyncserver in the "nsupdate" test
Reimplement the custom server written in Perl in Python using the
AsyncDnsServer class.

(cherry picked from commit 99b0cf2dd7)
2025-10-23 12:29:17 +00:00
Štěpán Balážik
7b8b7550d3 Enable ignoring TCP connections
Add a TCP connection handler, IgnoreAllConnections that allows
establishing TCP connection but not reading anything from it.

This re-uses the horrible hack from ConnectionReset handler and might
break at any point in the future.

See the comments and e407888507 for more
details.

(cherry picked from commit 4042b805ff)
2025-10-23 12:29:16 +00:00
Michał Kępień
b35d6513d8 Merge tag 'v9.20.15' into bind-9.20 2025-10-22 16:16:59 +00:00
Michal Nowak
539a5008fc [9.20] 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

Backport of MR !11115

Merge branch 'backport-5567-spatch-detect-more-error-conditions-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11133
2025-10-22 14:13:21 +02:00
Michal Nowak
184cb00814 Use SET_IF_NOT_NULL in isc__nm_base64*
(cherry picked from commit d91e8ed575)
2025-10-22 11:30:33 +00:00
Michal Nowak
d14f5cb894 Spawn coccinelle CI job when util/check-cocci.sh was touched
(cherry picked from commit 6db5b9ee14)
2025-10-22 11:30:32 +00:00
Michal Nowak
bbc05491f7 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

(cherry picked from commit 44d1a97870)
2025-10-22 11:30:32 +00:00
Mark Andrews
c5a6ac6614 [9.20] fix: test: Fix typo in tools test's shell path
Backport of MR !10939

Merge branch 'backport-pspacek/fix-test-typo-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11130
2025-10-22 17:04:25 +11:00
Petr Špaček
953c3aa83c Fix typo in tools test's shell path
(cherry picked from commit 0e770685d6)
2025-10-22 05:06:52 +00:00
Mark Andrews
6ead0aa4a2 [9.20] 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

Backport of MR !11106

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

See merge request isc-projects/bind9!11129
2025-10-22 14:26:07 +11:00
Mark Andrews
f7f96a5fdb dnssec-verify now returns failure on bad arguments
(cherry picked from commit ac3fba068e)
2025-10-22 13:48:22 +11:00
Mark Andrews
ac8b23b80b [9.20] 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

Backport of MR !11047

Merge branch 'backport-5506-dnssec-keygen-sig0-keys-collision-fix-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11128
2025-10-22 13:31:32 +11:00
Mark Andrews
2d496ef257 Don't log spurious error "bad key type" in findmatchingkeys
(cherry picked from commit 4c5d48926a)
2025-10-22 12:55:43 +11:00
Aram Sargsyan
3a1922f464 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.

(cherry picked from commit 49b7ce9a54)
2025-10-22 12:55:41 +11:00
Nicki Křížek
4dcb995aaa [9.20] 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.

Backport of MR !10983

Merge branch 'backport-nicki/pytest-add-python-setup-func-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11126
2025-10-21 18:19:47 +02:00
Nicki Křížek
a2a8b237e6 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).

(cherry picked from commit 377724c26d)
2025-10-21 16:16:18 +02:00
Nicki Křížek
6b55199d99 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.

(cherry picked from commit fb4345afd4)
2025-10-21 16:16:16 +02:00
Nicki Křížek
c322f2dde7 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.

(cherry picked from commit 7474d38295)
2025-10-21 16:08:37 +02:00
Michal Nowak
6364ec5f52 [9.20] new: ci: Update Clang to version 21
Backport of MR !10877

Merge branch 'backport-mnowak/llvm-21-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11119
2025-10-21 13:07:50 +02:00
Michal Nowak
bc35b646b9
Use clang-format-21 to update formatting 2025-10-21 12:12:01 +02:00
Michal Nowak
a3f30525d4
Update Clang to version 21
(cherry picked from commit 6770f3d608)
2025-10-21 12:08:42 +02:00
Mark Andrews
df78279777 [9.20] 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

Backport of MR !11109

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

See merge request isc-projects/bind9!11113
2025-10-20 12:21:00 +11:00
Mark Andrews
174355101e 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.

(cherry picked from commit a949184eb7)
2025-10-20 00:33:04 +00:00
Michał Kępień
0c0fcf7b2b
Update BIND version for release 2025-10-18 11:49:45 +02:00
Michał Kępień
2eb2969506 new: doc: Prepare documentation for BIND 9.20.15
Merge branch 'michal/prepare-documentation-for-bind-9.20.15' into 'v9.20.15-release'

See merge request isc-private/bind9!868
2025-10-18 11:46:07 +02:00
Nicki Křížek
b1a60e1149
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 2d0fb3f25d)
2025-10-18 09:49:32 +02:00
Michał Kępień
064dbdffca
Prepare release notes for BIND 9.20.15 2025-10-18 09:49:32 +02:00
Michał Kępień
5ce20ea209
Prepare changelog for BIND 9.20.15 2025-10-18 09:49:32 +02:00
Michał Kępień
51804cac28 [9.20] 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.

Backport of !865

Closes isc-projects/bind9#5343

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

See merge request isc-private/bind9!866
2025-10-18 09:43:19 +02:00
Ondřej Surý
13b88233be
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.

(cherry picked from commit 7b26176c46)
2025-10-18 09:36:58 +02:00
Mark Andrews
525d821e1a [9.20] 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

Backport of MR !11089

Merge branch 'backport-5565-multisigner-test-can-leave-created-and-unused-files-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11102
2025-10-16 12:15:41 +11:00
Mark Andrews
09745353dd Expect created.* and unused.* files
(cherry picked from commit 3a7f8e1d12)
2025-10-16 00:35:53 +00:00
Mark Andrews
916f539602 [9.20] 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

Backport of MR !11090

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

See merge request isc-projects/bind9!11092
2025-10-14 22:02:31 +11:00
Mark Andrews
294fd7300f '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.

(cherry picked from commit 5beba4d292)
2025-10-14 21:26:47 +11:00
Mark Andrews
a7eed45fa1 [9.20] 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

Backport of MR !11088

Merge branch 'backport-5564-fix-bug-in-skr-c-parse_rr-on-error-path-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11091
2025-10-14 18:28:01 +11:00
Mark Andrews
d70cb26231 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.

(cherry picked from commit e5ceda617d)
2025-10-14 06:48:57 +00:00
Michał Kępień
595ebac9a4 chg: doc: Set up version for BIND 9.20.16
Merge branch 'michal/set-up-version-for-bind-9.20.16' into 'bind-9.20'

See merge request isc-projects/bind9!11084
2025-10-13 15:42:56 +02:00
Michał Kępień
48956122d5 Update BIND version to 9.20.16-dev 2025-10-13 15:39:42 +02:00
Matthijs Mekking
f9cbd3484e [9.20] 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.

Backport of MR !11064

Merge branch 'backport-matthijs-clarify-import-key-dnssec-policy-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11078
2025-10-11 08:32:14 +00:00
Matthijs Mekking
97cc940286 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.

(cherry picked from commit 4df536e0dc)
2025-10-10 17:35:59 +00:00
Nicki Křížek
190240d4ec [9.20] 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

Backport of MR !11066

Merge branch 'backport-5554-disable-keyfromlabel-collision-avoidance-in-tests-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11074
2025-10-10 13:07:27 +02:00
Nicki Křížek
acc9e61bfa 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.

(cherry picked from commit 2ecbe46e0d)
2025-10-10 11:31:53 +02:00
Matthijs Mekking
4833ba7657 [9.20] 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

Backport of MR !11042

Merge branch 'backport-5278-kasp-system-test-follow-up-1-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11065
2025-10-08 09:57:22 +00:00
Matthijs Mekking
4851d88ac4 Make properties direct attribute of KeyProperties
There is no real reason to keep those in a dictionary.

(cherry picked from commit 2d7ab28ce2)
2025-10-08 08:33:37 +00:00
Matthijs Mekking
5f70e40c9e Remove KeyProperties property expect
This property is unused, so we can just remove it.

(cherry picked from commit ade333bb64)
2025-10-08 08:33:37 +00:00
Mark Andrews
fb85075815 [9.20] 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
```

Backport of MR !11062

Merge branch 'backport-marka-cocci-fix-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11063
2025-10-08 18:07:30 +11:00
Mark Andrews
feb2222ff6 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

(cherry picked from commit d89a535040)
2025-10-08 17:28:03 +11:00
Nicki Křížek
8909bb1fdc [9.20] 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.

Backport of MR !11056

Merge branch 'backport-nicki/reuse-remove-m4-annotations-9.20' into 'bind-9.20'

See merge request isc-projects/bind9!11057
2025-10-06 18:12:56 +02:00
Nicki Křížek
2d0fb3f25d 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 e77f349240)
2025-10-06 18:07:02 +02:00
Michał Kępień
13eade86f6
Update BIND version for release 2025-10-02 18:20:20 +02:00