]> git.ipfire.org Git - thirdparty/bind9.git/log
thirdparty/bind9.git
4 years agoRemove redundant assignment of 'clistenon = NULL'
Mark Andrews [Tue, 4 Jan 2022 00:51:56 +0000 (11:51 +1100)] 
Remove redundant assignment of 'clistenon = NULL'

4 years agoMerge branch '3454-check-putstr' into 'main'
Evan Hunt [Thu, 14 Jul 2022 00:23:17 +0000 (00:23 +0000)] 
Merge branch '3454-check-putstr' into 'main'

check putstr return values

Closes #3454

See merge request isc-projects/bind9!6574

4 years agocheck putstr return values
Evan Hunt [Wed, 13 Jul 2022 23:15:53 +0000 (16:15 -0700)] 
check putstr return values

The calls to putstr() in named_server_fetchlimit() were not checked
for failure.

4 years agoMerge branch '3447-lib-dns-tkey-c-free_namelist-should-be-disassociating-associated...
Mark Andrews [Thu, 14 Jul 2022 00:03:38 +0000 (00:03 +0000)] 
Merge branch '3447-lib-dns-tkey-c-free_namelist-should-be-disassociating-associated-rdatatsets' into 'main'

Resolve "lib/dns/tkey.c:free_namelist should be disassociating associated rdatatsets"

Closes #3447

See merge request isc-projects/bind9!6556

4 years agodisassociate rdatasets when cleaning up
Mark Andrews [Tue, 21 Dec 2021 01:44:17 +0000 (12:44 +1100)] 
disassociate rdatasets when cleaning up

free_namelist could be passed names with associated rdatasets
when handling errors.  These need to be disassociated before
calling dns_message_puttemprdataset.

4 years agoMerge branch '3449-kasp-system-test-failed-to-log-some-zones-during-setup' into ...
Mark Andrews [Wed, 13 Jul 2022 23:42:38 +0000 (23:42 +0000)] 
Merge branch '3449-kasp-system-test-failed-to-log-some-zones-during-setup' into 'main'

Resolve "kasp system test failed to log some zones during setup"

Closes #3449

See merge request isc-projects/bind9!6561

4 years agokasp: add missing logging during setup
Mark Andrews [Wed, 22 Dec 2021 04:13:27 +0000 (15:13 +1100)] 
kasp: add missing logging during setup

Some zones where not being logged when just DNSSEC keys where being
generated in system test setup phase.  Add logging for these zones.

4 years agoMerge branch '3054-3-improve-reporting-for-pthreads-errors' into 'main'
Michał Kępień [Wed, 13 Jul 2022 13:05:11 +0000 (13:05 +0000)] 
Merge branch '3054-3-improve-reporting-for-pthreads-errors' into 'main'

[3/3] Improve reporting for pthreads errors

Closes #3054

See merge request isc-projects/bind9!6572

4 years agoMerge branch '3054-2-enable-tracking-pthreads-objects' into 'main'
Michał Kępień [Wed, 13 Jul 2022 13:03:59 +0000 (13:03 +0000)] 
Merge branch '3054-2-enable-tracking-pthreads-objects' into 'main'

[2/3] Enable tracking pthreads objects

See merge request isc-projects/bind9!6571

4 years agoMerge branch '3054-1-misc-pthreads-cleanups' into 'main'
Michał Kępień [Wed, 13 Jul 2022 13:01:32 +0000 (13:01 +0000)] 
Merge branch '3054-1-misc-pthreads-cleanups' into 'main'

[1/3] Miscellaneous pthreads cleanups

See merge request isc-projects/bind9!6570

4 years agoImprove reporting for barrier errors
Michał Kępień [Wed, 13 Jul 2022 11:19:32 +0000 (13:19 +0200)] 
Improve reporting for barrier errors

uv_barrier_init() errors are currently ignored.  Use UV_RUNTIME_CHECK()
to catch them and to improve error reporting for any uv_barrier_init()
run-time failures (by augmenting error messages with file/line
information and the error string corresponding to the value returned).

4 years agoDetect pthreads object leaks during respdiff tests
Michał Kępień [Wed, 13 Jul 2022 11:19:32 +0000 (13:19 +0200)] 
Detect pthreads object leaks during respdiff tests

Set the ISC_TRACK_PTHREADS_OBJECTS preprocessor macro when preparing a
build of BIND 9 for respdiff testing and pass the -m command-line option
to respdiff.sh in order to enable automatic identification of memory
leaks during respdiff tests.

4 years agoDirectly cause assertion failure on pthreads primitives failure
Ondřej Surý [Wed, 13 Jul 2022 11:19:32 +0000 (13:19 +0200)] 
Directly cause assertion failure on pthreads primitives failure

Instead of returning error values from isc_rwlock_*(), isc_mutex_*(),
and isc_condition_*() macros/functions and subsequently carrying out
runtime assertion checks on the return values in the calling code,
trigger assertion failures directly in those macros/functions whenever
any pthread function returns an error, as there is no point in
continuing execution in such a case anyway.

4 years agoImprove reporting for read-write lock errors
Michał Kępień [Wed, 13 Jul 2022 11:19:32 +0000 (13:19 +0200)] 
Improve reporting for read-write lock errors

Replace direct uses of implementation-specific rwlock functions in
lib/isc/include/isc/rwlock.h with preprocessor macros that use
ERRNO_CHECK(), in order to augment rwlock-related error messages with
file/line/caller information and the error string corresponding to
errno.  Adjust the implementation-specific functions for pthreads-based
rwlocks so that they return any errors encountered to the caller instead
of aborting execution immediately using RUNTIME_CHECK().

To keep code modifications simple, make the non-pthreads-based
implementation-specific rwlock functions always return 0; these
functions continue to handle errors using less verbose run-time
assertions as they do not set errno anyway.

4 years agoEnable tracking of pthreads barriers
Michał Kępień [Wed, 13 Jul 2022 11:19:32 +0000 (13:19 +0200)] 
Enable tracking of pthreads barriers

Some POSIX threads implementations (e.g. FreeBSD's libthr) allocate
memory on the heap when pthread_barrier_init() is called.  Every call to
that function must be accompanied by a corresponding call to
pthread_barrier_destroy() or else the memory allocated for the barrier
will leak.

jemalloc can be used for detecting memory allocations which are not
released by a process when it exits.  Unfortunately, since jemalloc is
also the system allocator on FreeBSD and a special (profiling-enabled)
build of jemalloc is required for memory leak detection, this method
cannot be used for detecting leaked memory allocated by libthr on a
stock FreeBSD installation.

However, libthr's behavior can be emulated on any platform by
implementing alternative versions of libisc functions for creating and
destroying barriers that allocate memory using malloc() and release it
using free().  This enables using jemalloc for detecting missing
pthread_barrier_destroy() calls on any platform on which it works
reliably.

When the newly introduced ISC_TRACK_PTHREADS_OBJECTS preprocessor macro
is set, allocate isc_barrier_t structures on the heap in
isc_barrier_init() and free them in isc_barrier_destroy().  Reuse
existing barrier macros (after renaming them appropriately) for other
operations.

4 years agoUse library constructor to create default mutex attr once
Ondřej Surý [Wed, 13 Jul 2022 11:19:32 +0000 (13:19 +0200)] 
Use library constructor to create default mutex attr once

Instead of using isc_once_do() on every isc_mutex_init() call, use the
global library constructor to initialize the default mutex attr
object (optionally with PTHREAD_MUTEX_ADAPTIVE_NP if supported) just
once when the library is loaded.

4 years agoImprove reporting for condition variable errors
Michał Kępień [Wed, 13 Jul 2022 11:19:32 +0000 (13:19 +0200)] 
Improve reporting for condition variable errors

Replace all uses of RUNTIME_CHECK() in lib/isc/include/isc/condition.h
with ERRNO_CHECK(), in order to improve error reporting for any
condition-variable-related run-time failures (by augmenting error
messages with file/line/caller information and the error string
corresponding to errno).

4 years agoEnable tracking of pthreads rwlocks
Ondřej Surý [Wed, 13 Jul 2022 11:19:32 +0000 (13:19 +0200)] 
Enable tracking of pthreads rwlocks

Some POSIX threads implementations (e.g. FreeBSD's libthr) allocate
memory on the heap when pthread_rwlock_init() is called.  Every call to
that function must be accompanied by a corresponding call to
pthread_rwlock_destroy() or else the memory allocated for the rwlock
will leak.

jemalloc can be used for detecting memory allocations which are not
released by a process when it exits.  Unfortunately, since jemalloc is
also the system allocator on FreeBSD and a special (profiling-enabled)
build of jemalloc is required for memory leak detection, this method
cannot be used for detecting leaked memory allocated by libthr on a
stock FreeBSD installation.

However, libthr's behavior can be emulated on any platform by
implementing alternative versions of libisc functions for creating and
destroying rwlocks that allocate memory using malloc() and release it
using free().  This enables using jemalloc for detecting missing
pthread_rwlock_destroy() calls on any platform on which it works
reliably.

When the newly introduced ISC_TRACK_PTHREADS_OBJECTS preprocessor macro
is set (and --enable-pthread-rwlock is used), allocate isc_rwlock_t
structures on the heap in isc_rwlock_init() and free them in
isc_rwlock_destroy().  Reuse existing functions defined in
lib/isc/rwlock.c for other operations, but rename them first, so that
they contain triple underscores (to indicate that these functions are
implementation-specific, unlike their mutex and condition variable
counterparts, which always use the pthreads implementation).  Define the
isc__rwlock_init() macro so that it is a logical counterpart of
isc__mutex_init() and isc__condition_init(); adjust isc___rwlock_init()
accordingly.  Remove a redundant function prototype for
isc__rwlock_lock() and rename that (static) function to rwlock_lock() in
order to avoid having to use quadruple underscores.

4 years agoHandle pthread_*_init() failures consistently
Michał Kępień [Wed, 13 Jul 2022 11:19:32 +0000 (13:19 +0200)] 
Handle pthread_*_init() failures consistently

isc_rwlock_init() currently detects pthread_rwlock_init() failures using
a REQUIRE() assertion.  Use the ERRNO_CHECK() macro for that purpose
instead, so that read-write lock initialization failures are handled
identically as condition variable (pthread_cond_init()) and mutex
(pthread_mutex_init()) initialization failures.

4 years agoImprove reporting for mutex errors
Michał Kępień [Wed, 13 Jul 2022 11:19:32 +0000 (13:19 +0200)] 
Improve reporting for mutex errors

Replace all uses of RUNTIME_CHECK() in lib/isc/include/isc/mutex.h with
ERRNO_CHECK(), in order to improve error reporting for any mutex-related
run-time failures (by augmenting error messages with file/line/caller
information and the error string corresponding to errno).

4 years agoEnable tracking of pthreads condition variables
Ondřej Surý [Wed, 13 Jul 2022 11:19:32 +0000 (13:19 +0200)] 
Enable tracking of pthreads condition variables

Some POSIX threads implementations (e.g. FreeBSD's libthr) allocate
memory on the heap when pthread_cond_init() is called.  Every call to
that function must be accompanied by a corresponding call to
pthread_cond_destroy() or else the memory allocated for the condition
variable will leak.

jemalloc can be used for detecting memory allocations which are not
released by a process when it exits.  Unfortunately, since jemalloc is
also the system allocator on FreeBSD and a special (profiling-enabled)
build of jemalloc is required for memory leak detection, this method
cannot be used for detecting leaked memory allocated by libthr on a
stock FreeBSD installation.

However, libthr's behavior can be emulated on any platform by
implementing alternative versions of libisc functions for creating and
destroying condition variables that allocate memory using malloc() and
release it using free().  This enables using jemalloc for detecting
missing pthread_cond_destroy() calls on any platform on which it works
reliably.

When the newly introduced ISC_TRACK_PTHREADS_OBJECTS preprocessor macro
is set, allocate isc_condition_t structures on the heap in
isc_condition_init() and free them in isc_condition_destroy().  Reuse
existing condition variable macros (after renaming them appropriately)
for other operations.

4 years agoAdd an ERRNO_CHECK() preprocessor macro
Michał Kępień [Wed, 13 Jul 2022 11:19:32 +0000 (13:19 +0200)] 
Add an ERRNO_CHECK() preprocessor macro

In a number of situations in pthreads-related code, a common sequence of
steps is taken: if the value returned by a library function is not 0,
pass errno to strerror_r(), log the string returned by the latter, and
immediately abort execution.  Add an ERRNO_CHECK() preprocessor macro
which takes those exact steps and use it wherever (conveniently)
possible.

Notes:

 1. The "log the return value of strerror_r() and abort" pattern is used
    in a number of other places that this commit does not touch; only
    "!= 0" checks followed by isc_error_fatal() calls with
    non-customized error messages are replaced here.

 2. This change temporarily breaks file name & line number reporting for
    isc__mutex_init() errors, to prevent breaking the build.  This issue
    will be rectified in a subsequent change.

4 years agoEnable tracking of pthreads mutexes
Ondřej Surý [Wed, 13 Jul 2022 11:19:32 +0000 (13:19 +0200)] 
Enable tracking of pthreads mutexes

Some POSIX threads implementations (e.g. FreeBSD's libthr) allocate
memory on the heap when pthread_mutex_init() is called.  Every call to
that function must be accompanied by a corresponding call to
pthread_mutex_destroy() or else the memory allocated for the mutex will
leak.

jemalloc can be used for detecting memory allocations which are not
released by a process when it exits.  Unfortunately, since jemalloc is
also the system allocator on FreeBSD and a special (profiling-enabled)
build of jemalloc is required for memory leak detection, this method
cannot be used for detecting leaked memory allocated by libthr on a
stock FreeBSD installation.

However, libthr's behavior can be emulated on any platform by
implementing alternative versions of libisc functions for creating and
destroying mutexes that allocate memory using malloc() and release it
using free().  This enables using jemalloc for detecting missing
pthread_mutex_destroy() calls on any platform on which it works
reliably.

Introduce a new ISC_TRACK_PTHREADS_OBJECTS preprocessor macro, which
causes isc_mutex_t structures to be allocated on the heap by
isc_mutex_init() and freed by isc_mutex_destroy().  Reuse existing mutex
macros (after renaming them appropriately) for other operations.

4 years agoMerge branch 'ondrej-update-dir-locals-for-libtest' into 'main'
Ondřej Surý [Wed, 13 Jul 2022 10:21:35 +0000 (10:21 +0000)] 
Merge branch 'ondrej-update-dir-locals-for-libtest' into 'main'

Update the .dir-locals.el for libtest

See merge request isc-projects/bind9!6565

4 years agoUpdate the .dir-locals.el for libtest
Ondřej Surý [Wed, 13 Jul 2022 10:17:34 +0000 (12:17 +0200)] 
Update the .dir-locals.el for libtest

The tests/libtest directory is missing from the .dir-locals.el, so the
emacs flycheck would not work for the unit tests.  Add it to the
configuration.

4 years agoMerge branch '3439-stop-resolving-invalid-names-in-resume_dslookup' into 'main'
Michał Kępień [Wed, 13 Jul 2022 08:59:30 +0000 (08:59 +0000)] 
Merge branch '3439-stop-resolving-invalid-names-in-resume_dslookup' into 'main'

Stop resolving invalid names in resume_dslookup()

Closes #3439

See merge request isc-projects/bind9!6563

4 years agoAdd CHANGES entry and release note for GL #3439
Michał Kępień [Wed, 13 Jul 2022 08:31:16 +0000 (10:31 +0200)] 
Add CHANGES entry and release note for GL #3439

4 years agoStop resolving invalid names in resume_dslookup()
Michał Kępień [Wed, 13 Jul 2022 08:31:16 +0000 (10:31 +0200)] 
Stop resolving invalid names in resume_dslookup()

Commit 7b2ea97e46034ec3db4c950100708297798826af introduced a logic bug
in resume_dslookup(): that function now only conditionally checks
whether DS chasing can still make progress.  Specifically, that check is
only performed when the previous resume_dslookup() call invokes
dns_resolver_createfetch() with the 'nameservers' argument set to
something else than NULL, which may not always be the case.  Failing to
perform that check may trigger assertion failures as a result of
dns_resolver_createfetch() attempting to resolve an invalid name.

Example scenario that leads to such outcome:

 1. A validating resolver is configured to forward all queries to
    another resolver.  The latter returns broken DS responses that
    trigger DS chasing.

 2. rctx_chaseds() calls dns_resolver_createfetch() with the
    'nameservers' argument set to NULL.

 3. The fetch fails, so resume_dslookup() is called.  Due to
    fevent->result being set to e.g. DNS_R_SERVFAIL, the default branch
    is taken in the switch statement.

 4. Since 'nameservers' was set to NULL for the fetch which caused the
    resume_dslookup() callback to be invoked
    (fctx->nsfetch->private->nameservers), resume_dslookup() chops off
    one label off fctx->nsname and calls dns_resolver_createfetch()
    again, for a name containing one label less than before.

 5. Steps 3-4 are repeated (i.e. all attempts to find the name servers
    authoritative for the DS RRset being chased fail) until fctx->nsname
    becomes stripped down the the root name.

 6. Since resume_dslookup() does not check whether DS chasing can still
    make progress, it strips off a label off the root name and continues
    its attempts at finding the name servers authoritative for the DS
    RRset being chased, passing an invalid name to
    dns_resolver_createfetch().

Fix by ensuring resume_dslookup() always checks whether DS chasing can
still make progress when a name server fetch fails.  Update code
comments to ensure the purpose of the relevant dns_name_equal() check is
clear.

4 years agoMerge branch '3446-autosign-s-checking-revoked-key-with-duplicate-key-id-test-was...
Mark Andrews [Wed, 13 Jul 2022 00:48:09 +0000 (00:48 +0000)] 
Merge branch '3446-autosign-s-checking-revoked-key-with-duplicate-key-id-test-was-incomplete' into 'main'

Resolve "Autosign's 'checking revoked key with duplicate key ID' test was incomplete"

Closes #3446

See merge request isc-projects/bind9!6555

4 years agoMake "checking revoked key with duplicate key ID" work
Mark Andrews [Thu, 23 Jun 2022 04:22:10 +0000 (14:22 +1000)] 
Make "checking revoked key with duplicate key ID" work

There should be 2 keys with the same key id after the numerically
lower one is revoked (serial space arithmetic).  The DS points
at the non-revoked key so validation should still succeed.

4 years agoMerge branch '3445-update-libdns_la_libadd-instead-of-libdns_la_ldflags' into 'main'
Mark Andrews [Wed, 13 Jul 2022 00:44:51 +0000 (00:44 +0000)] 
Merge branch '3445-update-libdns_la_libadd-instead-of-libdns_la_ldflags' into 'main'

Resolve "Update libdns_la_LIBADD instead of libdns_la_LDFLAGS"

Closes #3445

See merge request isc-projects/bind9!6553

4 years agoUpdate libdns_la_LIBADD rather than libdns_la_LDFLAGS
Mark Andrews [Mon, 20 Dec 2021 09:23:17 +0000 (20:23 +1100)] 
Update libdns_la_LIBADD rather than libdns_la_LDFLAGS

the wrong macro was being update with MAXMINDDB_LIBS making
it difficult to adjust link order.

4 years agoMerge branch '2962-invalid-fctx' into 'main'
Evan Hunt [Tue, 12 Jul 2022 23:54:25 +0000 (23:54 +0000)] 
Merge branch '2962-invalid-fctx' into 'main'

clear fctx->magic and fetch->magic when destroying

See merge request isc-projects/bind9!6543

4 years agoclear fctx->magic and fetch->magic when destroying
Evan Hunt [Mon, 11 Jul 2022 23:55:48 +0000 (16:55 -0700)] 
clear fctx->magic and fetch->magic when destroying

fctx_destroy() and dns_resolver_destroyfetch() did not clear the
'magic' field during destruction.

4 years agoMerge branch '2683-ixfr-logging' into 'main'
Evan Hunt [Tue, 12 Jul 2022 23:25:34 +0000 (23:25 +0000)] 
Merge branch '2683-ixfr-logging' into 'main'

log the reason for falling back to AXFR from IXFR at level info

Closes #2683

See merge request isc-projects/bind9!6511

4 years agolog the reason for falling back to AXFR from IXFR at level info
Evan Hunt [Sat, 2 Jul 2022 20:09:25 +0000 (13:09 -0700)] 
log the reason for falling back to AXFR from IXFR at level info

messages indicating the reason for a fallback to AXFR (i.e, because
the requested serial number is not present in the journal, or because
the size of the IXFR response would exceeed "max-ixfr-ratio") are now
logged at level info instead of debug(4).

4 years agoMerge branch 'artem-backport-tls-related-fixes-from-loopmgr-branch' into 'main'
Artem Boldariev [Tue, 12 Jul 2022 12:11:21 +0000 (12:11 +0000)] 
Merge branch 'artem-backport-tls-related-fixes-from-loopmgr-branch' into 'main'

Backport TLS-related fixes from the loopmgr-branch

See merge request isc-projects/bind9!6501

4 years agoTLS: do not ignore accept callback result
Artem Boldariev [Sat, 2 Jul 2022 00:31:35 +0000 (03:31 +0300)] 
TLS: do not ignore accept callback result

Before this change the TLS code would ignore the accept callback result,
and would not try to gracefully close the connection. This had not been
noticed, as it is not really required for DoH. Now the code tries to
shut down the TLS connection gracefully when accepting it is not
successful.

4 years ago*_noresponse, tlsdns_listen_noalpn: csends == 1 is not guaranteed
Artem Boldariev [Fri, 1 Jul 2022 23:20:39 +0000 (02:20 +0300)] 
*_noresponse, tlsdns_listen_noalpn: csends == 1 is not guaranteed

This commit removes an assertion from the unit test which cannot be
guaranteed.

According to the test, exactly one client send must succeed. However,
it cannot really be guaranteed, as do not start to read data in the
accept callback on the server nor attach to the accepted handle. Thus,
we can expect the connection to be closed soon after we have returned
from the callback.

Interestingly enough, the test would pass just fine on TCP because:

a) there are fewer layers involved and thus there is less processing;

b) it is possible for the data to be sent and end up in an internal OS
socket buffer without being touched by an application's code on the
server. In such a case the client's write callback still would be
called successfully;

There is a chance for the test to succeed over TLS as well (as it
happily did before), but as the code has been changed to close unused
connections as soon as possible, the chance is far slimmer now.

What can be guaranteed is:

* cconnects == 1 (number client connections equals 1);
* saccepts == 1 (number of accepted connections equals 1).

4 years agoTLSDNS: try pass incoming data to OpenSSL if there are any
Artem Boldariev [Tue, 28 Jun 2022 18:05:23 +0000 (21:05 +0300)] 
TLSDNS: try pass incoming data to OpenSSL if there are any

Otherwise the code path will lead to a call to SSL_get_error()
returning SSL_ERROR_SSL, which in turn might lead to closing
connection to early in an unexpected way, as it is clearly not what is
intended.

The issue was found when working on loppmgr branch and appears to
be timing related as well. Might be responsible for some unexpected
transmission failures e.g. on zone transfers.

4 years agoTLS: bail out earlier when NM is stopping
Artem Boldariev [Mon, 27 Jun 2022 11:27:49 +0000 (14:27 +0300)] 
TLS: bail out earlier when NM is stopping

In some operations - most prominently when establishing connection -
it might be beneficial to bail out earlier when the network manager
is stopping.

The issue is backported from loopmgr branch, where such a change is
not only beneficial, but required.

4 years agoTLS: sometimes TCP conn. handle might be NULL on when connecting
Artem Boldariev [Fri, 24 Jun 2022 12:49:15 +0000 (15:49 +0300)] 
TLS: sometimes TCP conn. handle might be NULL on when connecting

In some cases - in particular, in case of errors, NULL might be passed
to a connection callback instead of a handle that could have led to
an abort. This commit ensures that such a situation will not occur.

The issue was found when working on the loopmgr branch.

4 years agoTLS: try to close sockets whenever there are no pending operations
Artem Boldariev [Fri, 24 Jun 2022 12:20:13 +0000 (15:20 +0300)] 
TLS: try to close sockets whenever there are no pending operations

This commit ensures that the underlying TCP socket of a TLS connection
gets closed earlier whenever there are no pending operations on it.

In the loop-manager branch, in some circumstances the connection
could have remained opened for far too long for no reason. This
commit ensures that will not happen.

4 years agoTLS: Implement isc_nmhandle_setwritetimeout()
Artem Boldariev [Thu, 23 Jun 2022 17:18:58 +0000 (20:18 +0300)] 
TLS: Implement isc_nmhandle_setwritetimeout()

This commit adds a proper implementation of
isc_nmhandle_setwritetimeout() for TLS connections. Now it passes the
value to the underlying TCP handle.

4 years agoMerge branch 'mnowak/alpine-3.16' into 'main'
Michal Nowak [Tue, 12 Jul 2022 11:10:28 +0000 (11:10 +0000)] 
Merge branch 'mnowak/alpine-3.16' into 'main'

Add Alpine Linux 3.16

See merge request isc-projects/bind9!6360

4 years agoAdd Alpine Linux 3.16
Michal Nowak [Thu, 26 May 2022 07:53:57 +0000 (09:53 +0200)] 
Add Alpine Linux 3.16

4 years agoMerge branch '3438-dnssec-policy-does-not-set-inline-signing' into 'main'
Matthijs Mekking [Tue, 12 Jul 2022 10:12:39 +0000 (10:12 +0000)] 
Merge branch '3438-dnssec-policy-does-not-set-inline-signing' into 'main'

Fix inheritance for dnssec-policy when checking for inline-signing

Closes #3438

See merge request isc-projects/bind9!6541

4 years agoAdd release note and change entry for #3438
Matthijs Mekking [Mon, 11 Jul 2022 08:34:24 +0000 (10:34 +0200)] 
Add release note and change entry for #3438

Bug worth mentioning.

4 years agoInherit dnssec-policy in check for inline-signing
Matthijs Mekking [Mon, 11 Jul 2022 08:30:44 +0000 (10:30 +0200)] 
Inherit dnssec-policy in check for inline-signing

When dnssec-policy is used, and the zone is not dynamic, BIND will
assume that the zone is inline-signed. But the function responsible
for this did not inherit the dnssec-policy option from the view or
options level, and thus never enabled inline-signing, while the zone
should have been.

This is fixed by this commit.

4 years agoTest setting of inline-signing with dnssec-policy
Matthijs Mekking [Mon, 11 Jul 2022 08:25:47 +0000 (10:25 +0200)] 
Test setting of inline-signing with dnssec-policy

When dnssec-policy is used, and the zone is not dynamic, BIND will
assume that the zone is inline-signed. Add test cases to verify this.

4 years agoFix kasp system test bugs
Matthijs Mekking [Mon, 11 Jul 2022 08:18:56 +0000 (10:18 +0200)] 
Fix kasp system test bugs

Fix a comment, ensuring the right parameters are used (zone is
parameter $3, not $2) and add view and policy parameters to the comment.

Fix the view tests and test the correct view (example3 instead of
example2).

Fix placement of "n=$((n+1)" for two test cases.

4 years agoMerge branch '3389-unexpected-badkey-in-upforwd-system-test' into 'main'
Mark Andrews [Tue, 12 Jul 2022 08:57:47 +0000 (08:57 +0000)] 
Merge branch '3389-unexpected-badkey-in-upforwd-system-test' into 'main'

Clone UPDATE message buffer before forwarding

Closes #3389

See merge request isc-projects/bind9!6388

4 years agoAdd CHANGES note for [GL #3389]
Mark Andrews [Fri, 3 Jun 2022 07:01:20 +0000 (17:01 +1000)] 
Add CHANGES note for [GL #3389]

4 years agoClone the message buffer before forwarding UPDATE messages
Mark Andrews [Fri, 3 Jun 2022 06:55:56 +0000 (16:55 +1000)] 
Clone the message buffer before forwarding UPDATE messages

this prevents named forwarding a buffer that may have been over
written.

4 years agoMerge branch '3440-use-default_algorithm-more-often' into 'main'
Mark Andrews [Tue, 12 Jul 2022 03:46:28 +0000 (03:46 +0000)] 
Merge branch '3440-use-default_algorithm-more-often' into 'main'

Resolve "Use DEFAULT_ALGORITHM more often"

Closes #3440

See merge request isc-projects/bind9!6532

4 years agoAdd CHANGES not for [GL #3440]
Mark Andrews [Fri, 8 Jul 2022 04:40:48 +0000 (14:40 +1000)] 
Add CHANGES not for [GL #3440]

4 years agozonechecks: use $DEFAULT_ALGORITHM
Mark Andrews [Fri, 8 Jul 2022 00:59:20 +0000 (10:59 +1000)] 
zonechecks: use $DEFAULT_ALGORITHM

4 years agowildcard: use $DEFAULT_ALGORITHM
Mark Andrews [Fri, 8 Jul 2022 01:03:34 +0000 (11:03 +1000)] 
wildcard: use $DEFAULT_ALGORITHM

4 years agoviews: use $DEFAULT_ALGORITHM
Mark Andrews [Fri, 8 Jul 2022 00:57:55 +0000 (10:57 +1000)] 
views: use $DEFAULT_ALGORITHM

4 years agoverify: use $DEFAULT_ALGORITHM
Mark Andrews [Fri, 8 Jul 2022 01:08:25 +0000 (11:08 +1000)] 
verify: use $DEFAULT_ALGORITHM

4 years agoupforwd: use $DEFAULT_ALGORITHM
Mark Andrews [Fri, 8 Jul 2022 01:12:03 +0000 (11:12 +1000)] 
upforwd: use $DEFAULT_ALGORITHM

4 years agounknown: use $DEFAULT_ALGORITHM
Mark Andrews [Fri, 8 Jul 2022 01:15:38 +0000 (11:15 +1000)] 
unknown: use $DEFAULT_ALGORITHM

4 years agosynthfromdnssec: use $DEFAULT_ALGORITHM
Mark Andrews [Fri, 8 Jul 2022 01:17:47 +0000 (11:17 +1000)] 
synthfromdnssec: use $DEFAULT_ALGORITHM

4 years agostaticstub: use $DEFAULT_ALGORITHM
Mark Andrews [Fri, 8 Jul 2022 01:22:03 +0000 (11:22 +1000)] 
staticstub: use $DEFAULT_ALGORITHM

4 years agosmartsign: use $DEFAULT_ALGORITHM
Mark Andrews [Fri, 8 Jul 2022 00:53:58 +0000 (10:53 +1000)] 
smartsign: use $DEFAULT_ALGORITHM

4 years agorpz: use $DEFAULT_ALGORITHM
Mark Andrews [Fri, 8 Jul 2022 01:37:39 +0000 (11:37 +1000)] 
rpz: use $DEFAULT_ALGORITHM

4 years agorootkeysentinel: use $DEFAULT_ALGORITHM
Mark Andrews [Fri, 8 Jul 2022 01:44:13 +0000 (11:44 +1000)] 
rootkeysentinel: use $DEFAULT_ALGORITHM

4 years agoresolver: use $DEFAULT_ALGORITHM
Mark Andrews [Fri, 8 Jul 2022 01:51:09 +0000 (11:51 +1000)] 
resolver: use $DEFAULT_ALGORITHM

4 years agoredirect: use $DEFAULT_ALGORITHM
Mark Andrews [Fri, 8 Jul 2022 01:53:56 +0000 (11:53 +1000)] 
redirect: use $DEFAULT_ALGORITHM

4 years agopending: use $DEFAULT_ALGORITHM
Mark Andrews [Fri, 8 Jul 2022 01:56:39 +0000 (11:56 +1000)] 
pending: use $DEFAULT_ALGORITHM

4 years agonsupdate: use $DEFAULT_ALGORITHM
Mark Andrews [Fri, 8 Jul 2022 02:14:15 +0000 (12:14 +1000)] 
nsupdate: use $DEFAULT_ALGORITHM

4 years agomkeys: use $DEFAULT_ALGORITHM
Mark Andrews [Fri, 8 Jul 2022 02:24:34 +0000 (12:24 +1000)] 
mkeys: use $DEFAULT_ALGORITHM

4 years agomirror: use $DEFAULT_ALGORITHM
Mark Andrews [Fri, 8 Jul 2022 02:37:39 +0000 (12:37 +1000)] 
mirror: use $DEFAULT_ALGORITHM

4 years agometadata: use $DEFAULT_ALGORITHM
Mark Andrews [Fri, 8 Jul 2022 02:43:34 +0000 (12:43 +1000)] 
metadata: use $DEFAULT_ALGORITHM

4 years agoinline: use $DEFAULT_ALGORITHM
Mark Andrews [Fri, 8 Jul 2022 03:49:52 +0000 (13:49 +1000)] 
inline: use $DEFAULT_ALGORITHM

4 years agodsdigest: use $DEFAULT_ALGORITHM
Mark Andrews [Fri, 8 Jul 2022 04:01:11 +0000 (14:01 +1000)] 
dsdigest: use $DEFAULT_ALGORITHM

4 years agodnssec: use $DEFAULT_ALGORITHM
Mark Andrews [Thu, 7 Jul 2022 09:21:02 +0000 (19:21 +1000)] 
dnssec: use $DEFAULT_ALGORITHM

4 years agodns64: use $DEFAULT_ALGORITHM
Mark Andrews [Thu, 7 Jul 2022 08:33:51 +0000 (18:33 +1000)] 
dns64: use $DEFAULT_ALGORITHM

4 years agochain: use $DEFAULT_ALGORITHM
Mark Andrews [Thu, 7 Jul 2022 08:23:17 +0000 (18:23 +1000)] 
chain: use $DEFAULT_ALGORITHM

4 years agocds: use $DEFAULT_ALGORITHM
Mark Andrews [Thu, 7 Jul 2022 08:20:42 +0000 (18:20 +1000)] 
cds: use $DEFAULT_ALGORITHM

4 years agoautosign: use $DEFAULT_ALGORITHM
Mark Andrews [Thu, 7 Jul 2022 08:12:44 +0000 (18:12 +1000)] 
autosign: use $DEFAULT_ALGORITHM

4 years agoMerge branch '3423-fix-root-zone-compression' into 'main'
Ondřej Surý [Mon, 11 Jul 2022 11:53:15 +0000 (11:53 +0000)] 
Merge branch '3423-fix-root-zone-compression' into 'main'

Don't compress in the rrset if compression was disabled

Closes #3423

See merge request isc-projects/bind9!6485

4 years agoAdd CHANGES and release note for [GL #3423]
Ondřej Surý [Thu, 23 Jun 2022 12:33:00 +0000 (14:33 +0200)] 
Add CHANGES and release note for [GL #3423]

4 years agoExpand name compression unit test
Mark Andrews [Fri, 24 Jun 2022 02:29:23 +0000 (12:29 +1000)] 
Expand name compression unit test

The name compression unit test is expanded to check that the compressed
form matches the expected wire pattern.

Record owner names are compressed differently to rdata names by
calling dns_name_towire2 instead of dns_name_towire so check that
owner names are compressed correctly as well.

4 years agoDon't compress in the rrset if compression was disabled
Ondřej Surý [Thu, 23 Jun 2022 11:06:37 +0000 (13:06 +0200)] 
Don't compress in the rrset if compression was disabled

Currently, when rrset is being compressed, the optimization has been put
in place to reuse offset to the previous name in the same rrset.  This
skips the check for non-improving compression and thus compresses the
root zone making the wireformat worse by one byte.

Additionally, when the compression has been disabled for the name, it
would be repeatedly added to the compression table because we act as if
the name was not found and the dns_compress_add() doesn't check for the
existing entry.

Change the dns_name_towire2() to always lookup the name in the
compression table to prevent adding duplicates, but don't use it neither
in the wireformat nor in the rrset cache.

4 years agoMerge branch 'michal/set-up-version-and-release-notes-for-bind-9.19.4' into 'main'
Michał Kępień [Mon, 11 Jul 2022 07:05:52 +0000 (07:05 +0000)] 
Merge branch 'michal/set-up-version-and-release-notes-for-bind-9.19.4' into 'main'

Set up version and release notes for BIND 9.19.4

See merge request isc-projects/bind9!6538

4 years agoSet up release notes for BIND 9.19.4
Michał Kępień [Mon, 11 Jul 2022 06:49:38 +0000 (08:49 +0200)] 
Set up release notes for BIND 9.19.4

4 years agoUpdate BIND version to 9.19.4-dev
Michał Kępień [Mon, 11 Jul 2022 06:49:38 +0000 (08:49 +0200)] 
Update BIND version to 9.19.4-dev

4 years agoUpdate BIND 9 version for release v9.19.3
Michał Kępień [Thu, 7 Jul 2022 13:20:57 +0000 (15:20 +0200)] 
Update BIND 9 version for release

4 years agoAdd a CHANGES marker
Michał Kępień [Thu, 7 Jul 2022 13:20:57 +0000 (15:20 +0200)] 
Add a CHANGES marker

4 years agoMerge branch 'michal/prepare-documentation-for-bind-9.19.3' into 'v9_19_3-release'
Michał Kępień [Thu, 7 Jul 2022 13:19:36 +0000 (13:19 +0000)] 
Merge branch 'michal/prepare-documentation-for-bind-9.19.3' into 'v9_19_3-release'

Prepare documentation for BIND 9.19.3

See merge request isc-private/bind9!412

4 years agoAdd release note for GL #3415
Michał Kępień [Thu, 7 Jul 2022 12:43:47 +0000 (14:43 +0200)] 
Add release note for GL #3415

4 years agoAdd release note for GL #3152
Michał Kępień [Thu, 7 Jul 2022 12:43:47 +0000 (14:43 +0200)] 
Add release note for GL #3152

4 years agoRestore release note for GL #3386
Michał Kępień [Thu, 7 Jul 2022 12:43:47 +0000 (14:43 +0200)] 
Restore release note for GL #3386

4 years agoReorder release notes
Michał Kępień [Thu, 7 Jul 2022 12:43:47 +0000 (14:43 +0200)] 
Reorder release notes

4 years agoTweak and reword release notes
Michał Kępień [Thu, 7 Jul 2022 12:43:47 +0000 (14:43 +0200)] 
Tweak and reword release notes

4 years agoPrepare release notes for BIND 9.19.3
Michał Kępień [Thu, 7 Jul 2022 12:43:47 +0000 (14:43 +0200)] 
Prepare release notes for BIND 9.19.3

4 years agoMerge branch '665-rndc-fetchlimit' into 'main'
Evan Hunt [Thu, 7 Jul 2022 03:05:53 +0000 (03:05 +0000)] 
Merge branch '665-rndc-fetchlimit' into 'main'

implement "rndc fetchlimit"

Closes #665

See merge request isc-projects/bind9!6362

4 years agoCHANGES and release note for [GL #665]
Evan Hunt [Thu, 26 May 2022 21:49:03 +0000 (14:49 -0700)] 
CHANGES and release note for [GL #665]

4 years ago"rndc fetchlimit" now also lists rate-limited domains
Evan Hunt [Thu, 26 May 2022 21:43:23 +0000 (14:43 -0700)] 
"rndc fetchlimit" now also lists rate-limited domains

"rndc fetchlimit" now also prints a list of domain names that are
currently rate-limited by "fetches-per-zone".

The "fetchlimit" system test has been updated to use this feature
to check that domain limits are applied correctly.