Commit graph

40283 commits

Author SHA1 Message Date
Colin Vidal
ce0d28d19c [9.18] chg: dev: Exclude named.args.j2 and system test README files from license header checks
Exclude named.args.j2 files from license header checks so named.args can
be generated from Jinja templates. Also exclude system test README files
from the license header checks.

Backport of MR !11690

Merge branch 'backport-colin/reuse-namedargs-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!11697
2026-03-16 11:58:27 +01:00
Colin Vidal
bba04a0fd1 Excluse system test README files from license header checks
Exclude README* files in system test directories from license header
checks.

(cherry picked from commit c77c499254)
2026-03-16 11:42:49 +01:00
Colin Vidal
b2903b8cfe Exclude named.args.j2 files from license header checks
Exclude named.args.j2 files from license header checks so named.args can
be generated from Jinja templates.

(cherry picked from commit 63290c9e4e)
2026-03-16 11:42:09 +01:00
Michał Kępień
2c2ceaca98 chg: doc: Set up version for BIND 9.18.48
Merge branch 'michal/set-up-version-for-bind-9.18.48' into 'bind-9.18'

See merge request isc-projects/bind9!11682
2026-03-12 21:15:21 +01:00
Michał Kępień
1674fba164 Update BIND version to 9.18.48-dev 2026-03-12 21:11:54 +01:00
Michał Kępień
36777bee48 [9.18] new: ci: Add CI jobs to update RPM packages
New CI jobs are added to update the RPM packages in the context of a new
release. To be run only in tag pipelines.

Backport of MR !11677

Merge branch 'backport-andoni/andoni/new-ci-add-job-to-update-rpms-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!11679
2026-03-12 21:02:45 +01:00
Andoni Duarte Pintado
cad4f2f2a0 Add CI jobs to update RPM packages
New CI jobs are added to update the RPM packages in the context of a new
release. To be run only in tag pipelines.

(cherry picked from commit 985a1e1664)
2026-03-12 19:49:27 +00:00
Petr Špaček
df23802f19 [9.18] new: ci: Automatically manage early access tokens for distros
Backport of MR !11654

Merge branch 'backport-pspacek/distros-tokens-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!11675
2026-03-12 13:28:36 +00:00
Michał Kępień
9079ce8aaa Fix a typo in job name
As hinted upon by the comment preceding it, the job preparing packager
notifications was (rather unsurprisingly) supposed to be called
"prepare-packager-notification".  Fix the typo in its name.

(cherry picked from commit 50e18f6720)
2026-03-12 12:45:16 +00:00
Petr Špaček
28565ff3ca Delete early access token when code is published
Technically this is not necessary because the token expires in one week
after creation, and new code would have got there only one week before
the next public release, but better be safe than sorry.

Catch is, after_script gets executed even if a job fails or is
canceled. Delete distros token only if publication succeeded.

(cherry picked from commit 98cbde5233)
2026-03-12 12:45:16 +00:00
Petr Špaček
4c0a013b07 Generate token for early Git access in prepare-package-notification
(cherry picked from commit 9f323ad040)
2026-03-12 12:45:16 +00:00
Mark Andrews
3d9ebc9614 [9.18] fix: nil: Set length in dns_rdata_in_dhcid structure
tostruct_in_dhcid was not setting the length field in the
dns_rdata_in_dhcid structure. This has been fixed.

Fixes #5796

Backport of MR !11668

Merge branch 'backport-marka-set-dhcid-length-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!11673
2026-03-12 21:05:59 +11:00
Mark Andrews
9ffcac3726 Set length in dns_rdata_in_dhcid structure
tostruct_in_dhcid was not setting the length field in the
dns_rdata_in_dhcid structure.

(cherry picked from commit cfa21d1e8b)
2026-03-12 20:32:18 +11:00
Mark Andrews
fc29c6a9d7 [9.18] fix: doc: Expand blackhole description
Clarify the behavior of negated addresses within the `blackhole`
statement to prevent common configuration misunderstandings.

Closes #5733

Backport of MR !11541

Merge branch 'backport-5733-expand-blackhole-description-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!11671
2026-03-12 13:11:50 +11:00
Ondřej Surý
78beb3a71a Expand blackhole description
Clarify the behavior of negated addresses within the `blackhole`
statement to prevent common configuration misunderstandings.

(cherry picked from commit 2b23c7011e)
2026-03-12 12:15:47 +11:00
Matthijs Mekking
994cf44836 [9.18] new: test: Create trust anchors from isctest.kasp.Key
Add isctest.kasp.Key and the minimal methods which are required to
convert the key into DS / DNSKEY trust anchor for BIND config. Add a
shared template trusted.conf.j2 which can be linked to in tests to
create the trust anchor configuration from trust anchor data returned
from bootstrap() function.

This is basically a python replacement for the keyfile_to_static_ds (and
friends) from the conf.sh shell framework.

Backport of !11201

Merge branch 'nicki/pytest-add-trust-anchor-template-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!11653
2026-03-10 15:03:21 +00:00
Nicki Křížek
4cca73b037 Create trust anchors from isctest.kasp.Key
Add isctest.kasp.Key and the minimal methods which are required tp
convert the key into DS / DNSKEY trust anchor for BIND config. Add a
shared template trusted.conf.j2 which can be linked to in tests to
create the trust anchor configuration from trust anchor data returned
from bootstrap() function.

This is basically a python replacement for the keyfile_to_static_ds (and
friends) from the conf.sh shell framework.

(manually picked from 0bf20f8d and f6cb154b)
2026-03-10 15:19:31 +01:00
Nicki Křížek
e1aff4b8eb [9.18] chg: ci: Re-enable shotgun runs for nightlies and tags
The recent rewrite of DNS Shotgun infrastructure might've improved the
prior instability. In order to evaluate, re-enable the regular shotgun
pipelines to gather data.

Backport of MR !11506

Merge branch 'backport-nicki/ci-shotgun-enable-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!11645
2026-03-09 18:38:09 +01:00
Nicki Křížek
7a9d68304c Re-enable shotgun runs
Make the shotgun pipelines on-demand with 5 samples (and no retry) by
defautl. MRs are compared to their base, while other sources (triggers,
web, schedule...) are compared against the latest released version.

For schedules, run the shotgun pipelines on Monday morning only, but
with the increased number of samples. This should provide useful data
without too many false positives.

(cherry picked from commit f2f255d67e)
2026-03-09 18:04:30 +01:00
Nicki Křížek
3cc9f28393 [9.18] chg: test: Log dnspython queries after .to_wire() is called
Some dns message modifications like TSIG happen only after .to_wire() is
called on the message. To ensure there isn't a discrepancy between what
has been logged and what has been sent, log the query after
dns.query.udp() is executed (which calls .to_wire() on the message).

Backport of MR !11623

Merge branch 'backport-nicki/pytest-log-querymsg-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!11643
2026-03-09 15:54:50 +01:00
Nicki Křížek
fa6d910cc7 Log dnspython queries after .to_wire() is called
Some dns message modifications like TSIG happen only after .to_wire() is
called on the message. To ensure there isn't a discrepancy between what
has been logged and what has been sent, log the query after
dns.query.udp() is executed (which calls .to_wire() on the message).

Co-Authored-By: Štěpán Balážik <stepan@isc.org>
(cherry picked from commit a22e03f71b)
2026-03-09 12:12:47 +00:00
Andoni Duarte
14507e4cac [9.18] new: ci: Add a job updating the Docker image for a specific release
Add a new CI job that updates the Docker image for a specific release.

Backport of MR !11564

Merge branch 'backport-andoni/update-bind9-docker-images-for-release-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!11638
2026-03-06 09:28:47 +00:00
Andoni Duarte Pintado
f3304b5618 Add job to update BIND9 Docker images for release
This commit adds a new CI job to update the BIND9 version in the
isc-projects/bind9-docker project, which will cause the docker images
to be rebuilt for release. Previously a manual step.

A notification is sent to the relevant Mattermost channel.

(cherry picked from commit 0ad724558e)
2026-03-06 09:25:06 +00:00
Michal Nowak
6953e3f913 [9.18] new: ci: Add LLVM 22
Backport of MR !11627

Merge branch 'backport-mnowak/llvm-22-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!11629
2026-03-04 12:59:27 +01:00
Michal Nowak
cd3f252922
Ignore clang-format-22 reformatting commits
(cherry picked from commit 01d16e049e)
2026-03-04 12:25:13 +01:00
Michal Nowak
be2ee6bfa0
Use clang-format-22 to update formatting
(cherry picked from commit 239464f276)
2026-03-04 12:24:53 +01:00
Michal Nowak
8a61ed67f3
Add LLVM 22
(cherry picked from commit ffd7636e79)
2026-03-04 12:23:03 +01:00
Štěpán Balážik
f041da054f [9.18] fix: ci: Fix .respdiff-recent-named anchor to work when the ABI changes
Previously, on 9.20 and 9.18, both builds (reference and the version
being tested) would use the same .so files which lead to a crash if the
ABI changed.

Use `git worktree` to get completely separate build environment for the
reference version.

This is not a problem on 9.21 as Meson is smart and covers this mistake,
but apply the fix to it as well for consistency.

This also is not a problem on non-MR pipelines: the latest released version
was used as a reference there, so the .so versions would differ.

See the 9.20 pre-backport branch and the jobs:

- Broken: https://gitlab.isc.org/isc-projects/bind9/-/jobs/6951217
- Fixed: https://gitlab.isc.org/isc-projects/bind9/-/jobs/6951220

Backport of MR !11616

Merge branch 'backport-stepan/respdiff-fails-on-abi-breakage-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!11620
2026-03-03 07:35:08 +00:00
Štěpán Balážik
e1b7fcffbe Fix .respdiff-recent-named anchor to work when the ABI changes
Previously, on 9.20 and 9.18, both builds (reference and the version
being tested) would use the same .so files which lead to a crash if the
ABI changed.

Use `git worktree` to get completely separate build environment for the
reference version.

This is not a problem on 9.21 as Meson is smart and covers this mistake,
but apply the fix to it as well for consistency.

(cherry picked from commit a719341314)
2026-03-03 07:57:04 +01:00
Michał Kępień
45e77459b0 Merge tag 'v9.18.46' into bind-9.18 2026-02-27 12:20:54 +00:00
Michał Kępień
aef945ecdd
Update BIND version for release 2026-02-26 21:54:07 +01:00
Michał Kępień
9d5e9a9b6f new: doc: Prepare documentation for BIND 9.18.46
Merge branch 'michal/prepare-documentation-for-bind-9.18.46' into 'v9.18.46-release'

See merge request isc-private/bind9!934
2026-02-26 21:50:33 +01:00
Michał Kępień
584d0bc5f9
Tweak and reword release notes 2026-02-26 21:37:49 +01:00
Michał Kępień
f8c9d93a36
Prepare release notes for BIND 9.18.46 2026-02-26 21:37:49 +01:00
Michał Kępień
e43123b1e9
Generate changelog for BIND 9.18.46 2026-02-26 21:37:49 +01:00
Michał Kępień
a0c5ecf9c1 chg: doc: Set up version for BIND 9.18.47
Merge branch 'michal/set-up-version-for-bind-9.18.47' into 'bind-9.18'

See merge request isc-projects/bind9!11610
2026-02-26 12:02:33 +01:00
Michał Kępień
63bff24e6a
Update BIND version to 9.18.47-dev 2026-02-26 11:56:48 +01:00
Matthijs Mekking
7733cb4580 [9.18] fix: usr: Clear serve-stale flags when following the CNAME chains
A stale answer could have been served in case of multiple upstream
failures when following the CNAME chains.  This has been fixed.

Closes #5751

Backport of MR !11558

Merge branch 'backport-5751-clear-staleflags-in-CNAME-chains-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!11584
2026-02-25 16:55:56 +00:00
Ondřej Surý
15b5d4c917 Clear serve-stale flags when following the CNAME chains
A stale answer or SERVFAIL could have been served in case of multiple
upstream failures when following the CNAME chains. This has been fixed.

(cherry picked from commit d46277b398)
2026-02-25 17:17:07 +01:00
Matthijs Mekking
9b47b37df9 Test serve-stale with upstream zones and CNAMEs
Three variants of YWH-PGM40640-56: Stale/Wrong DNS Data Served via
CNAME Flag Leak (DNS_DBFIND_STALEOK persistence) are presented in
GitLab issue #5751. All these variants have been converted to system
tests.

Variant 1 forwards source.stale to another server, that provides a
CNAME record, while the resolver is authoritative for target.stale.
The CNAME points to a non-existing name. A stale CNAME record should
result in a stale NXDOMAIN (instead of SERVFAIL).

Variant 2 forwards both source.stale and target.stale to other servers.
This time the CNAME points to an A RRset. If the source.stale server
is not available (and stale-answer-client-timeout is off), the cached
CNAME should be followed and pick up the fresh RRset (instead of the
stale A RRset).

Variant 3 is similar to variant 2, but this time the CNAME points to
a non-existing name again. After flushing the target, BIND should
return a stale NXDOMAIN (instead of SERVFAIL).

(cherry picked from commit c32de7df95)
2026-02-25 17:17:07 +01:00
Štěpán Balážik
ad027ad295 [9.18] fix: ci: Fix generate-tsan-stress-test-configs CI job
In a3d0f43d2 I moved the script that does this to the QA repo and
screwed up the path.

Fix the path and make the job run properly again.

Backport of MR !11599

Merge branch 'backport-stepan/fix-tsan-stress-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!11603
2026-02-25 15:54:58 +00:00
Štěpán Balážik
013af7818e Fix generate-tsan-stress-test-configs CI job
In a3d0f43d2 I moved the script that does this to the QA repo and
screwed up the path.

Fix the path and make the job run properly again.

(cherry picked from commit 4ed6c4e4e7)
2026-02-25 16:07:40 +01:00
Štěpán Balážik
9e23fcf74e [9.18] chg: ci: Move and/or rename Python scripts
Move some scripts to the QA repo, rename others to adhere to the snake-case Python convention.

Partial backport of MR !11499

Merge branch 'backport-stepan/python-tooling-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!11575
2026-02-25 12:39:47 +00:00
Štěpán Balážik
65b779661d Rename Python files to adhere to the snake-case convention
(cherry picked from commit 50ed74197c)
2026-02-25 12:10:20 +00:00
Štěpán Balážik
708b8ecef1 Move utility Python scripts to the bind9-qa repo
I would have touched them anyway in this MR so let's bite the bullet
and move them there.

(cherry picked from commit a3d0f43d21)
2026-02-25 12:10:20 +00:00
Štěpán Balážik
aea6bc9066 Clone the bind9-qa repo to the project root in CI jobs
Cloning to a stable location allows clearer handling of paths when
calling scripts from CI jobs.

`unit:gcc:tarball` and `system:gcc:tarball` do `cd bind-*` in
`before_script` which lead to the `bind9-qa` directory ending up in
a different place in exactly these two jobs and that made reasoning
about paths in `.system_test_common` and `.unit_test_common` tricky.

(cherry picked from commit 482c1cc72f)
2026-02-25 12:10:20 +00:00
Ondřej Surý
97fd0c56e4 [9.18] chg: dev: Invalid NSEC3 can cause OOB read of the isdelegation() stack
When .next_length is longer than NSEC3_MAX_HASH_LENGTH, it causes a
harmless out-of-bound read of the isdelegation() stack.  This has been
fixed.

Closes #5749

Backport of MR !11553

Merge branch 'backport-5749-fix-OOB-read-in-isdelegation-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!11595
2026-02-24 17:29:38 +01:00
Mark Andrews
e9c23f598b
Test maximum length NSEC3 hash detection
Adds text and wire format unit tests to verify the newly enforced
maximum NSEC3 hash length constraints.  These tests ensure that hash
lengths up to the 39-byte maximum are accepted, while larger sizes
correctly fail.

(cherry picked from commit e83a182056)
2026-02-24 16:42:19 +01:00
Mark Andrews
7eeefdc36a
Remove invalid REQUIRE in NSEC3 fromstruct method
The NSEC3 fromstruct method only worked for hash type 1
when it should work for all hash types.

(cherry picked from commit f030bc6756)
2026-02-24 16:42:19 +01:00
Mark Andrews
8d6e1c1a48
Enforce NSEC3 record consistency
NSEC3 hashes are required to fit within a single DNS label.  Since there
are 5 bits per label byte without pad characters, the maximum hash size
is floor(63*5/8) (39 bytes).

This patch enforces this maximum length for unknown algorithms, while
strictly enforcing the exact expected digest length for known algorithms
like SHA-1.

(cherry picked from commit 3801d0ebbf)
2026-02-24 16:31:33 +01:00