Commit graph

33349 commits

Author SHA1 Message Date
Mark Andrews
8389380bde Add CHANGES note for [GL #2685]
(cherry picked from commit d99c312938)
2021-05-26 08:50:19 +10:00
Mark Andrews
564ab69c57 Consolidate xhdr fixups
(cherry picked from commit 0a45af2e2f)
2021-05-26 08:49:30 +10:00
Mark Andrews
264b31e786 Check that IXFR delta size is correct
(cherry picked from commit 68d203ff1c)
2021-05-26 08:49:30 +10:00
Mark Andrews
d832062986 Correct size calculation in dns_journal_iter_init()
* dns_journal_next() leaves the read point in the journal after the
transaction header so journal_seek() should be inside the loop.
* we need to recover from transaction header inconsistencies

Additionally when correcting for <size, serial0, serial1, 0> the
correct consistency check is isc_serial_gt() rather than
isc_serial_ge().  All instances updated.

(cherry picked from commit 00609f5094)
2021-05-26 08:49:30 +10:00
Michal Nowak
98de7363e7 Merge branch 'mnowak/install-bind-by-setting-DESTDIR-v9_16' into 'v9_16'
[v9_16] Install BIND with "make DESTDIR=<PATH> install"

See merge request isc-projects/bind9!5091
2021-05-25 16:39:41 +00:00
Michal Nowak
d3aa8f4f5a
Install BIND with "make DESTDIR=<PATH> install"
BIND installation should be done by setting DESTDIR during "make
install" not by setting prefix via ./configure.

Make sure that installation with DESTDIR=<PATH> works by checking that
named binary and it's respective man page were installed and that
well-known BIND9 directories - and only them - are present in DESTDIR.

Also rename install path variable from BIND_INSTALL_PATH to
INSTALL_PATH to avoid namespace clash in stress tests which use
BIND_INSTALL_PATH variable to configure path to BIND9 binaries.

(cherry picked from commit 823bf3e79b)
2021-05-25 12:03:34 +02:00
Ondřej Surý
1bb7963bbb Merge branch 'ondrej/replace-ubuntu-xenial-with-ubuntu-bionic-v9_16' into 'v9_16'
Replace Ubuntu 16.04 LTS with Ubuntu 18.04 LTS in the GitLab CI (v9.16)

See merge request isc-projects/bind9!5088
2021-05-24 20:22:21 +00:00
Ondřej Surý
e1725d75c3 Replace Ubuntu 16.04 LTS with Ubuntu 18.04 LTS in the GitLab CI
Ubuntu 16.04 (Xenial Xerus) is reaching End of Standard Support in April
2021 thus we are removing it from the list of supported platforms and
replacing it with Ubuntu 18.04 LTS (Bionic Beaver).

(cherry picked from commit 4402a90bb7)
2021-05-24 21:53:57 +02:00
Michal Nowak
4f60a8f06f Merge branch 'mnowak/freebsd-13-v9_16' into 'v9_16'
[v9_16] Add FreeBSD 13.0

See merge request isc-projects/bind9!5086
2021-05-24 18:17:42 +00:00
Michal Nowak
0c3e2e6c42
Run gcc:tarball CI job for merge requests
Running gcc:tarball CI job for merge requests is consistent with how we
run gcc:out-of-tree CI job and should help identify problems with the
build system during the review process, not once merged during daily
runs. For the sake of time, unit and system tests associated with the
gcc:tarball CI job are excluded from merge requests.

Also, make sure that the tarball-create CI job includes the
default_triggering_rules anchor (as it is on the main branch), otherwise
adding the gcc:tarball CI job to merge request-triggered pipeline fails
with:

    Found errors in your .gitlab-ci.yml: 'gcc:tarball' job needs 'tarball-create' job but it was not added to the pipeline

(cherry picked from commit 83617cea9a)
2021-05-24 19:29:23 +02:00
Michal Nowak
582d7fc860
Do not spawn FreeBSD 11 CI jobs in merge requests
(cherry picked from commit 70eccd2952)
2021-05-24 18:37:37 +02:00
Michal Nowak
a496ab42f1
Create an anchor for schedules, tags, and web rules
It's a common pattern to spawn CI jobs only for pipelines triggered by
schedules, tags, and web. There should be an anchor so that the rules
are not repeated.

(cherry picked from commit e4f88c359c)
2021-05-24 18:22:52 +02:00
Michal Nowak
ddf03eb546
Add FreeBSD 13.0
(cherry picked from commit 0714fe6f40)
2021-05-24 18:18:44 +02:00
Ondřej Surý
a5f92c9d99 Merge branch '2713-intermittent-crashes-in-the-tkey-system-test-caused-by-broken-dns_name_t-structures-v9_16' into 'v9_16'
Use dns_name_copynf() with dns_message_gettempname() when needed

See merge request isc-projects/bind9!5083
2021-05-22 05:42:08 +00:00
Ondřej Surý
ac25fb9439 Use dns_name_copynf() with dns_message_gettempname() when needed
dns_message_gettempname() returns an initialized name with a dedicated
buffer, associated with a dns_fixedname object.  Using dns_name_copynf()
to write a name into this object will actually copy the name data
from a source name. dns_name_clone() merely points target->ndata to
source->ndata, so it is faster, but it can lead to a use-after-free if
the source is freed before the target object is released via
dns_message_puttempname().

In a few places, clone was being used where copynf should have been;
this is now fixed.

As a side note, no memory was lost, because the ndata buffer used in
the dns_fixedname_t is internal to the structure, and is freed when
the dns_fixedname_t is freed regardless of the .ndata contents.

(cherry picked from commit ce3e1abc1d)
2021-05-22 07:17:01 +02:00
Ondřej Surý
f470e46db0 Merge branch '2515-improve-glue-cache-performance-v9_16' into 'v9_16'
use a fixedname buffer in dns_message_gettempname()

See merge request isc-projects/bind9!5072
2021-05-22 05:15:01 +00:00
Ondřej Surý
9f13e61041 Optimize rdataset_getownercase not to use bitshifts
The last rdataset_getownercase() left it in a state where the code was
mix of microoptimizations (manual loop unrolling, complicated bitshifts)
with a code that would always rewrite the character even if it stayed
the same after transformation.

This commit makes sure that we modify only the characters that actually
need to change, removes the manual loop unrolling, and replaces the
weird bit arithmetics with a simple shift and bit-and.

(cherry picked from commit 5ee9edc4ce)
2021-05-22 07:13:57 +02:00
Evan Hunt
dccdb492ef use a fixedname buffer in dns_message_gettempname()
dns_message_gettempname() now returns a pointer to an initialized
name associated with a dns_fixedname_t object. it is no longer
necessary to allocate a buffer for temporary names associated with
the message object.

(cherry picked from commit e31cc1eeb4)
2021-05-22 07:13:57 +02:00
Michał Kępień
a8582b8f8f Merge branch 'michal/regenerate-man-pages-with-sphinx-4.0.2-v9_16' into 'v9_16'
[v9_16] Regenerate man pages with Sphinx 4.0.2

See merge request isc-projects/bind9!5078
2021-05-21 09:37:26 +00:00
Michał Kępień
f27685f0d3 Explicitly set "man_make_section_directory"
The default value of the "man_make_section_directory" Sphinx option was
changed in Sphinx 4.0.1, which broke building man pages in maintainer
mode as the shell code in doc/man/Makefile.am expects man pages to be
built in doc/man/_build/man/, not doc/man/_build/man/<section_number>/.
The aforementioned change in defaults was reverted in Sphinx 4.0.2, but
this issue should still be prevented from reoccurring in the future.
Ensure that by explicitly setting the "man_make_section_directory"
option to False.

(cherry picked from commit 9ec83d1f63)
2021-05-21 11:27:32 +02:00
Michał Kępień
070c5fff49 Regenerate man pages with Sphinx 4.0.2
The man pages produced by Sphinx 4.0.2 are slightly different than those
produced by Sphinx 3.5.4.  As Sphinx 4.0.2 is now used in GitLab CI,
update all doc/man/*in files so that they reflect what that version of
Sphinx produces, in order to prevent GitLab CI job failures.

(cherry picked from commit bdb777b2a2)
2021-05-21 11:27:32 +02:00
Michał Kępień
f2c0dfdc19 Merge branch 'v9_16_16-release' into 'v9_16'
Merge 9.16.16 release branch

See merge request isc-projects/bind9!5069
2021-05-20 10:29:48 +00:00
Michał Kępień
2082566018 Set up release notes for BIND 9.16.17 2021-05-20 12:24:21 +02:00
Tinderbox User
57dad292ae Merge branch 'prep-release' into v9_16_16-release 2021-05-20 12:24:21 +02:00
Michał Kępień
2d7ec0c23b Merge branch 'mnowak/prepare-documentation-for-bind-9.16.16' into 'v9_16_16-release'
Prepare documentation for BIND 9.16.16

See merge request isc-private/bind9!294
2021-05-20 12:24:21 +02:00
Tinderbox User
2427e53d97 prep 9.16.16 2021-05-20 12:24:21 +02:00
Michał Kępień
cc503db304 Prepare release notes for BIND 9.16.16 2021-05-20 12:24:21 +02:00
Michał Kępień
6c144f38d9 Add release note for GL #2626 2021-05-20 12:24:21 +02:00
Michał Kępień
22d7ba6d11 Reorder release notes 2021-05-20 12:24:21 +02:00
Michał Kępień
f853ea9b15 Tweak and reword release notes 2021-05-20 12:24:21 +02:00
Michał Kępień
bf54e20580 Tweak and reword recent CHANGES entries 2021-05-20 12:24:21 +02:00
Michal Nowak
d0a0e7ad18 Fix typo in doc/dnssec-guide/recipes.rst 2021-05-20 12:24:21 +02:00
Matthijs Mekking
cc5bd7f1f5 Merge branch '1875-kasp-views-keyfile-race-v9_16' into 'v9_16'
Lock kasp when looking for zone keys (9.16)

See merge request isc-projects/bind9!5067
2021-05-20 08:21:29 +00:00
Matthijs Mekking
01f9b6e9c4 Release notes and changes for [#1875]
(cherry picked from commit fa1cd0a1f1)
2021-05-20 09:53:32 +02:00
Matthijs Mekking
96be6473fc Lock kasp when looking for zone keys
We should also lock kasp when reading key files, because at the same
time the zone in another view may be updating the key file.

(cherry picked from commit 252a1ae0a1)
2021-05-20 09:52:53 +02:00
Michal Nowak
735857bb09 Merge branch 'mnowak/openbsd-6.9-v9_16' into 'v9_16'
[v9_16] Add OpenBSD 6.9

See merge request isc-projects/bind9!5064
2021-05-19 17:33:03 +00:00
Michal Nowak
fec3bc59f5
Add OpenBSD 6.9
(cherry picked from commit 315b8522ba)
2021-05-19 18:25:33 +02:00
Michal Nowak
78189e7d27 Merge branch '2694-drop-seq-command-from-views-tests-sh-v9_16' into 'v9_16'
[v9_16] Replace seq command with POSIX-compliant shell code

See merge request isc-projects/bind9!5062
2021-05-19 14:55:03 +00:00
Michal Nowak
c0d4a11484
Make views system test ShellCheck-clean
Also, add "set -e" to all shell scripts of the views test to exit when
any command fails or is unknown, e.g., this on OpenBSD:

    tests.sh[174]: seq: not found

(cherry picked from commit a4b7eb7188)
2021-05-19 16:01:03 +02:00
Michal Nowak
8cb24ae7a9
Replace seq command with POSIX-compliant shell code
The seq command is not defined in the POSIX standard and is missing on
OpenBSD. Given that the system test code is meant to be POSIX-compliant
replace it with a shell construct.

(cherry picked from commit a08487ec3d)
2021-05-19 15:56:43 +02:00
Michał Kępień
167efc28fc Merge branch '2709-clean-up-the-installdirs-target-in-Makefile.in' into 'v9_16'
Clean up the "installdirs" target in Makefile.in

See merge request isc-projects/bind9!5059
2021-05-19 12:02:40 +00:00
Michał Kępień
4a4d215037 Add CHANGES entry 2021-05-19 09:59:31 +02:00
Michał Kępień
91d0dfd707 Clean up the "installdirs" target in Makefile.in
The isc-config.sh script was removed in 2019 [1], so the top-level
Makefile does not need to create ${bindir} and ${mandir}/man1 any more.

All named options creating files in the ${localstatedir}/run/named
directory are able to automatically create that directory (as well as
its containing directories), so there is no need for the top-level
Makefile to create ${localstatedir}/run.

Clean up the "installdirs" target in the top-level Makefile accordingly.

[1] see commit 4b44351e65
2021-05-19 09:59:31 +02:00
Matthijs Mekking
cc04e5be92 Merge branch '2688-cid331478-forwardnull-v9_16' into 'v9_16'
Fix coverity issue 331478 (9.16)

See merge request isc-projects/bind9!5058
2021-05-19 07:26:09 +00:00
Matthijs Mekking
5ce026d6a1 Fix coverity issue 331478
Move the "cannot start rollover" warning into code block that checks
if 'active_key' is not NULL.

(cherry picked from commit 19395fd168)
2021-05-19 09:05:35 +02:00
Mark Andrews
c8230562e8 Merge branch '2463-kasp-views-different-policy-same-keydirectory-v9_16' into 'v9_16'
Check key-directory duplicates for kasp zones

See merge request isc-projects/bind9!5055
2021-05-19 01:44:59 +00:00
Matthijs Mekking
271bad4362 Release notes and changes for [GL #2463]
Mention the bugfix.

(cherry picked from commit a9f4b074c4)
2021-05-19 00:44:32 +00:00
Matthijs Mekking
4e8dc72717 Add checkconf tests for [#2463]
Add two tests to make sure named-checkconf catches key-directory issues
where a zone in multiple views uses the same directory but has
different dnssec-policies. One test sets the key-directory specifically,
the other inherits the default key-directory (NULL, aka the working
directory).

Also update the good.conf test to allow zones in different views
with the same key-directory if they use the same dnssec-policy.

Also allow zones in different views with different key-directories if
they use different dnssec-policies.

Also allow zones in different views with the same key-directories if
only one view uses a dnssec-policy (the other is set to "none").

Also allow zones in different views with the same key-directories if
no views uses a dnssec-policy (zone in both views has the dnssec-policy
set to "none").

(cherry picked from commit df1aecd5ff)
2021-05-19 00:44:32 +00:00
Matthijs Mekking
d9fa465ff4 Check key-directory duplicates for kasp zones
Don't allow the same zone with different dnssec-policies in separate
views have the same key-directory.

Track zones plus key-directory in a symtab and if there is a match,
check the offending zone's dnssec-policy name. If the name is "none"
(there is no kasp for the offending zone), or if the name is the same
(the zone shares keys), it is fine, otherwise it is an error (zones
in views using different policies cannot share the same key-directory).

(cherry picked from commit 494e8b2cbd)
2021-05-19 00:44:32 +00:00
Mark Andrews
3aac910a01 Merge branch '2550-remove-dns_zone_setflag-v9_16' into 'v9_16'
Remove dns_zone_setflag()

See merge request isc-projects/bind9!5056
2021-05-19 00:43:35 +00:00