]> git.ipfire.org Git - thirdparty/bind9.git/log
thirdparty/bind9.git
22 months agoPrevent overflow of size
Mark Andrews [Tue, 9 Jul 2024 01:59:39 +0000 (11:59 +1000)] 
Prevent overflow of size

If size overflows we will have an infinite loop.  In practice
this will not happen unless we have made a coding error.  Add
an INSIST to detect this condition.

    181        while (!done) {
    182                isc_buffer_allocate(mctx, &b, size);
    183                result = dns_rdata_totext(rdata, NULL, b);
    184                if (result == ISC_R_SUCCESS) {
    185                        printf("%.*s\n", (int)isc_buffer_usedlength(b),
    186                               (char *)isc_buffer_base(b));
    187                        done = true;
    188                } else if (result != ISC_R_NOSPACE) {
    189                        check_result(result, "dns_rdata_totext");
    190                }
    191                isc_buffer_free(&b);

    CID 498025: (#1 of 1): Overflowed constant (INTEGER_OVERFLOW)
    overflow_const: Expression size, which is equal to 0, overflows the type that
    receives it, an unsigned integer 32 bits wide.
    192                size *= 2;
    193        }

22 months agonew: doc: Clarify how to print default dnssec-policy
Petr Špaček [Fri, 2 Aug 2024 08:25:23 +0000 (08:25 +0000)] 
new: doc: Clarify how to print default dnssec-policy

Merge branch 'pspacek/doc-dnssec-policy-default' into 'main'

See merge request isc-projects/bind9!9092

22 months agoClarify how to print default dnssec-policy
Petr Špaček [Fri, 7 Jun 2024 07:45:48 +0000 (09:45 +0200)] 
Clarify how to print default dnssec-policy

Reading the source tree is unnecessarily complicated, we now have
command line option to print defaults.

22 months agofix: dev: Remove unnecessary operations
Mark Andrews [Fri, 2 Aug 2024 06:34:08 +0000 (06:34 +0000)] 
fix: dev: Remove unnecessary operations

Decrementing optlen immediately before calling continue is unneccesary
and inconsistent with the rest of dns_message_pseudosectiontoyaml
and dns_message_pseudosectiontotext.  Coverity was also reporting
an impossible false positive overflow of optlen (CID 499061).

    4176                        } else if (optcode == DNS_OPT_CLIENT_TAG) {
    4177                                uint16_t id;
    4178                                ADD_STRING(target, "; CLIENT-TAG:");
    4179                                if (optlen == 2U) {
    4180                                        id = isc_buffer_getuint16(&optbuf);
    4181                                        snprintf(buf, sizeof(buf), " %u\n", id);
    4182                                        ADD_STRING(target, buf);

    CID 499061: (#1 of 1): Overflowed constant (INTEGER_OVERFLOW)
    overflow_const: Expression optlen, which is equal to 65534, underflows
    the type that receives it, an unsigned integer 16 bits wide.
    4183                                        optlen -= 2;
    4184                                        POST(optlen);
    4185                                        continue;
    4186                                }
    4187                        } else if (optcode == DNS_OPT_SERVER_TAG) {

Merge branch 'marka-remove-unnecessary-operations' into 'main'

See merge request isc-projects/bind9!9130

22 months agoRemove unnecessary operations
Mark Andrews [Tue, 9 Jul 2024 00:29:30 +0000 (10:29 +1000)] 
Remove unnecessary operations

Decrementing optlen immediately before calling continue is unneccesary
and inconsistent with the rest of dns_message_pseudosectiontoyaml
and dns_message_pseudosectiontotext.  Coverity was also reporting
an impossible false positive overflow of optlen (CID 499061).

    4176                        } else if (optcode == DNS_OPT_CLIENT_TAG) {
    4177                                uint16_t id;
    4178                                ADD_STRING(target, "; CLIENT-TAG:");
    4179                                if (optlen == 2U) {
    4180                                        id = isc_buffer_getuint16(&optbuf);
    4181                                        snprintf(buf, sizeof(buf), " %u\n", id);
    4182                                        ADD_STRING(target, buf);

    CID 499061: (#1 of 1): Overflowed constant (INTEGER_OVERFLOW)
    overflow_const: Expression optlen, which is equal to 65534, underflows
    the type that receives it, an unsigned integer 16 bits wide.
    4183                                        optlen -= 2;
    4184                                        POST(optlen);
    4185                                        continue;
    4186                                }
    4187                        } else if (optcode == DNS_OPT_SERVER_TAG) {

22 months agofix: test: digdelv system test can report more errors than there actually are
Mark Andrews [Fri, 2 Aug 2024 03:01:19 +0000 (03:01 +0000)] 
fix: test: digdelv system test can report more errors than there actually are

Closes #4770

Merge branch '4770-digdelv-system-test-can-report-more-errors-than-they-actually-are' into 'main'

Closes #4770

See merge request isc-projects/bind9!9104

22 months agoReset 'ret' to zero at start of tests
Mark Andrews [Wed, 12 Jun 2024 22:57:14 +0000 (08:57 +1000)] 
Reset 'ret' to zero at start of tests

22 months agochg: usr: allow shorter resolver-query-timeout configuration
Arаm Sаrgsyаn [Thu, 1 Aug 2024 18:31:14 +0000 (18:31 +0000)] 
chg: usr: allow shorter resolver-query-timeout configuration

The minimum allowed value of 'resolver-query-timeout' was lowered to
301 milliseconds instead of the earlier 10000 milliseconds (which is the
default). As earlier, values less than or equal to 300 are converted to
seconds before applying the limit.

Closes #4320

Merge branch '4320-allow-shorter-resolver-query-timeout-configuration' into 'main'

Closes #4320

See merge request isc-projects/bind9!9091

22 months agoUpdate the resolver unit test
Aram Sargsyan [Thu, 6 Jun 2024 19:58:57 +0000 (19:58 +0000)] 
Update the resolver unit test

Before there was a gap from 301 to 9999 which would be converted
to 10000 and now there is no such gap.

This settimeout_belowmin test was checking the behavior of a value
in the gap. As there is now no gap left, the minimum is 301 and
anything below that is converted to seconds as before. In order
for this check to still test the "below minimum" behavior, change
the value from 9000 to 300.

Update the settimeout_overmax value test too so it logically aligns
with the minimum value test.

22 months agoDocument shorter resolver-query-timeout configuration
Aram Sargsyan [Thu, 6 Jun 2024 09:22:55 +0000 (09:22 +0000)] 
Document shorter resolver-query-timeout configuration

The lower limit is now 301 milliseconds instead of 10000 milliseconds.

22 months agoTest shorter resolver-query-timeout configuration
Aram Sargsyan [Thu, 6 Jun 2024 09:20:44 +0000 (09:20 +0000)] 
Test shorter resolver-query-timeout configuration

Add two new checks which test the shorter than usual
resolver-query-timeout configuration.

22 months agoAllow shorter resolver-query-timeout configuration
Aram Sargsyan [Thu, 6 Jun 2024 09:16:57 +0000 (09:16 +0000)] 
Allow shorter resolver-query-timeout configuration

There are use cases for which shorter timeout values make sense.
For example if there is a load balancer which sets RD=1 and
forwards queries to a BIND resolver which is then configured to
talk to backend servers which are not visible in the public NS set.
WIth a shorter timeout value the frontend can give back SERVFAIL
early when backends are not available and the ultimate client will
not penalize the BIND-frontend for non-response.

22 months agonew: usr: implement rndc retransfer -force
Arаm Sаrgsyаn [Thu, 1 Aug 2024 16:54:45 +0000 (16:54 +0000)] 
new: usr: implement rndc retransfer -force

A new optional argument '-force' has been added to the command channel
command 'rndc retransfer'. When it is specified, named aborts the
ongoing zone transfer (if there is one), and starts a new transfer.

Closes #2299

Merge branch '2299-implement-rndc-force-retransfer' into 'main'

Closes #2299

See merge request isc-projects/bind9!9102

22 months agoRename dns_zone_forcereload() to dns_zone_forcexfr()
Aram Sargsyan [Fri, 14 Jun 2024 21:17:54 +0000 (21:17 +0000)] 
Rename dns_zone_forcereload() to dns_zone_forcexfr()

The new name describes the function more accurately.

22 months agoTest rndc retransfer -force
Aram Sargsyan [Tue, 11 Jun 2024 12:26:08 +0000 (12:26 +0000)] 
Test rndc retransfer -force

Use a big zone and the slow transfer mode. Initiate a retransfer, wait
several seconds, then initiate a retransfer using a '-force' argument,
which should cancel the previous transfer and start a new one.

22 months agoMake dns_xfrin_shutdown() safe to run from a different loop
Aram Sargsyan [Tue, 11 Jun 2024 10:57:15 +0000 (10:57 +0000)] 
Make dns_xfrin_shutdown() safe to run from a different loop

If the current loop is different than the zone transfer's loop then
run the shutdown operation asynchronously.

22 months agoImplement rndc retransfer -force
Aram Sargsyan [Tue, 11 Jun 2024 10:55:18 +0000 (10:55 +0000)] 
Implement rndc retransfer -force

With this new optional argument if there is an ongoing zone
transfer it will be aborted before a new zone transfer is scheduled.

22 months agoDo not automatically restart a canceled zone transfer
Aram Sargsyan [Tue, 11 Jun 2024 10:53:06 +0000 (10:53 +0000)] 
Do not automatically restart a canceled zone transfer

If a zone transfer is canceled there is no need to try the
next primary or retry with AXFR.

22 months agofix: usr: fix generation of 6to4-self name expansion from IPv4 address
Mark Andrews [Thu, 1 Aug 2024 06:40:17 +0000 (06:40 +0000)] 
fix: usr: fix generation of 6to4-self name expansion from IPv4 address

The period between the most significant nibble of the encoded IPv4 address and the 2.0.0.2.IP6.ARPA suffix was missing resulting in the wrong name being checked. Add system test for 6to4-self implementation.

Closes #4766

Merge branch '4766-add-system-test-for-6to4-self' into 'main'

Closes #4766

See merge request isc-projects/bind9!9099

22 months agocheck 'update-policy 6to4-self' over IPv6
Mark Andrews [Fri, 7 Jun 2024 03:28:48 +0000 (13:28 +1000)] 
check 'update-policy 6to4-self' over IPv6

22 months agocheck 'update-policy 6to4-self' over IPv4
Mark Andrews [Wed, 5 Jun 2024 05:22:17 +0000 (15:22 +1000)] 
check 'update-policy 6to4-self' over IPv4

22 months agoAdd missing period to generated IPv4 6to4 name
Mark Andrews [Wed, 5 Jun 2024 03:59:39 +0000 (13:59 +1000)] 
Add missing period to generated IPv4 6to4 name

The period between the most significant nibble of the IPv4 address
and the 2.0.0.2.IP6.ARPA suffix was missing resulting in the wrong
name being checked.

22 months agofix: usr: fix false QNAME minimisation error being reported
Mark Andrews [Thu, 1 Aug 2024 05:16:20 +0000 (05:16 +0000)] 
fix: usr: fix false QNAME minimisation error being reported

Remove the false positive "success resolving" log message when QNAME minimisation is in effect and the final result is NXDOMAIN.

Closes #4784

Merge branch '4784-false-qname-minimisation-error-being-reported' into 'main'

Closes #4784

See merge request isc-projects/bind9!9117

22 months agoTest that false positive "success resolving" is not logged
Mark Andrews [Tue, 25 Jun 2024 04:00:51 +0000 (14:00 +1000)] 
Test that false positive "success resolving" is not logged

22 months agoCleanup old clang-format string splitting
Mark Andrews [Tue, 25 Jun 2024 06:42:25 +0000 (16:42 +1000)] 
Cleanup old clang-format string splitting

22 months agoRemove false positive qname minimisation error
Mark Andrews [Thu, 20 Jun 2024 04:02:24 +0000 (14:02 +1000)] 
Remove false positive qname minimisation error

Don't report qname minimisation NXDOMAIN errors when the result is
NXDOMAIN.

22 months agofix: usr: Dig +yaml was producing unexpected and/or invalid YAML output
Mark Andrews [Thu, 1 Aug 2024 03:44:17 +0000 (03:44 +0000)] 
fix: usr: Dig +yaml was producing unexpected and/or invalid YAML output

Closes #4796

Merge branch '4796-yaml-stringify-question-and-records' into 'main'

Closes #4796

See merge request isc-projects/bind9!9127

22 months agoTest yaml output with yaml specials
Mark Andrews [Mon, 8 Jul 2024 05:49:48 +0000 (15:49 +1000)] 
Test yaml output with yaml specials

22 months agoFix yaml output
Mark Andrews [Mon, 8 Jul 2024 04:00:14 +0000 (14:00 +1000)] 
Fix yaml output

In yaml mode we emit a string for each question and record.  Certain
names and data could result in invalid yaml being produced.  Use single
quote string for all questions and records.  This requires that single
quotes get converted to two quotes within the string.

22 months agochg: test: resolver system test didn't fail on all subtest errors
Mark Andrews [Thu, 1 Aug 2024 02:29:19 +0000 (02:29 +0000)] 
chg: test: resolver system test didn't fail on all subtest errors

Closes #4774

Merge branch '4774-resolver-system-test-didn-t-fail-on-all-subtest-errors' into 'main'

Closes #4774

See merge request isc-projects/bind9!9105

22 months agoresolver system test didn't record all failures
Mark Andrews [Mon, 17 Jun 2024 01:36:41 +0000 (11:36 +1000)] 
resolver system test didn't record all failures

22 months agofix: usr: SVBC alpn text parsing failed to reject zero length alpn
Mark Andrews [Thu, 1 Aug 2024 01:06:37 +0000 (01:06 +0000)] 
fix: usr: SVBC alpn text parsing failed to reject zero length alpn

Closes #4775

Merge branch '4775-reject-zero-length-alpn-in-alpn-fromtext' into 'main'

Closes #4775

See merge request isc-projects/bind9!9106

22 months agoCheck invalid alpn empty value
Mark Andrews [Sun, 30 Jun 2024 23:23:31 +0000 (09:23 +1000)] 
Check invalid alpn empty value

22 months agoCheck invalid alpn produced due to missing double escapes
Mark Andrews [Mon, 17 Jun 2024 07:00:36 +0000 (17:00 +1000)] 
Check invalid alpn produced due to missing double escapes

22 months agoProperly reject zero length ALPN in commatxt_fromtext
Mark Andrews [Mon, 17 Jun 2024 13:16:28 +0000 (23:16 +1000)] 
Properly reject zero length ALPN in commatxt_fromtext

ALPN are defined as 1*255OCTET in RFC 9460.  commatxt_fromtext was not
rejecting invalid inputs produces by missing a level of escaping
which where later caught be dns_rdata_fromwire on reception.

These inputs should have been rejected

svcb in svcb 1 1.svcb alpn=\,abc
svcb1 in svcb 1 1.svcb alpn=a\,\,abc

and generated 00 03 61 62 63 and 01 61 00 02 61 62 63 respectively.

The correct inputs to include commas in the alpn requires double
escaping.

svcb in svcb 1 1.svcb alpn=\\,abc
svcb1 in svcb 1 1.svcb alpn=a\\,\\,abc

and generate 04 2C 61 62 63 and 06 61 2C 2C 61 62 63 respectively.

22 months agochg: doc: update querylog documentation in ARM
Arаm Sаrgsyаn [Wed, 31 Jul 2024 16:05:55 +0000 (16:05 +0000)] 
chg: doc: update querylog documentation in ARM

Add a note that 'rndc reload' and 'rndc reconfig' can't change the
querylog option during the runtime of named.

Closes #4801

Merge branch '4801-arm-querylog-clarification' into 'main'

Closes #4801

See merge request isc-projects/bind9!9136

22 months agoUpdate querylog documentation in ARM
Aram Sargsyan [Wed, 10 Jul 2024 12:42:16 +0000 (12:42 +0000)] 
Update querylog documentation in ARM

Add a note that 'rndc reload' and 'rndc reconfig' can't change the
querylog option during the runtime of named.

22 months agochg: dev: replace #define DNS_GETDB_ with struct of bools
Arаm Sаrgsyаn [Wed, 31 Jul 2024 12:53:50 +0000 (12:53 +0000)] 
chg: dev: replace #define DNS_GETDB_ with struct of bools

Replace #define DNS_GETDB_ with struct of bools to make
it easier to pretty-print the attributes in a debugger.

Closes #4559

Merge branch '4559-convert-dns_getdb_x-defines-to-1-bit-long-bools' into 'main'

Closes #4559

See merge request isc-projects/bind9!9093

22 months agoReplace #define DNS_GETDB_ with struct of bools
Aram Sargsyan [Fri, 7 Jun 2024 10:18:09 +0000 (10:18 +0000)] 
Replace #define DNS_GETDB_ with struct of bools

This makes it easier to pretty-print the attributes in a debugger.

22 months agofix: usr: return SERVFAIL for a too long CNAME chain
Arаm Sаrgsyаn [Wed, 31 Jul 2024 11:50:33 +0000 (11:50 +0000)] 
fix: usr: return SERVFAIL for a too long CNAME chain

When cutting a long CNAME chain, named was returning NOERROR
instead of SERVFAIL (alongside with a partial answer). This
has been fixed.

Closes #4449

Merge branch '4449-return-servfail-for-a-long-cname-chain' into 'main'

Closes #4449

See merge request isc-projects/bind9!9090

22 months agoUpdate the chain test
Aram Sargsyan [Thu, 6 Jun 2024 20:49:34 +0000 (20:49 +0000)] 
Update the chain test

Update the CNAME chain test to correspond to the changed behavior,
because now named returns SERVFAIL when hitting the maximum query
restarts limit (e.g. happening when following a long CNAME chain).

In the current test auth will hit the limit and return partial data
with a SERVFAIL code, while the resolver will return no data with
a SERVFAIL code after auth returns SERVFAIL to it.

22 months agoTest that a long CNAME chain causes SERVFAIL
Aram Sargsyan [Thu, 6 Jun 2024 12:10:19 +0000 (12:10 +0000)] 
Test that a long CNAME chain causes SERVFAIL

Also check that the expected partial answer in returned too.

22 months agoReturn SERVFAIL for a too long CNAME chain
Aram Sargsyan [Thu, 6 Jun 2024 12:06:59 +0000 (12:06 +0000)] 
Return SERVFAIL for a too long CNAME chain

Due to the maximum query restart limitation a long CNAME chain
it is cut after 16 queries but named still returns NOERROR.

Return SERVFAIL instead and the partial answer.

22 months agochg: test: Improve crypto support detection and algorithm selection in pytest
Nicki Křížek [Wed, 31 Jul 2024 09:37:51 +0000 (09:37 +0000)] 
chg: test: Improve crypto support detection and algorithm selection in pytest

Ensure that the selected algorithms remains stable throughout the entire test session. Crypto support detection was rewritten to python and simplified.

Closes #4202

Closes #4422

Related #3810

Merge branch '4202-algorithm-detection-pytest' into 'main'

Closes #4202 and #4422

See merge request isc-projects/bind9!8803

22 months agoInitialize all environment variables when running isctest
Nicki Křížek [Fri, 10 May 2024 11:10:14 +0000 (13:10 +0200)] 
Initialize all environment variables when running isctest

Ensure all the variables are initialized when running the main function
of isctest module. This enables proper environment variables during test
script development when only conf.sh is sourced, rather than the script
being executed by the pytest runner.

22 months agoReplace testcrypto.sh invocations in tests
Tom Krizek [Wed, 24 Jan 2024 14:38:55 +0000 (15:38 +0100)] 
Replace testcrypto.sh invocations in tests

Use the provided environment variables instead.

22 months agoRewrite testcrypto.sh into python
Tom Krizek [Mon, 8 Jan 2024 11:54:19 +0000 (12:54 +0100)] 
Rewrite testcrypto.sh into python

Run the crypto support checks when initializing the isctest package and
save those results in environment variable. This removes the need to
repeatedly check for crypto operation support, as it's not something
that would change at test runtime.

22 months agoMove test algorithm configuration to isctest
Tom Krizek [Thu, 4 Jan 2024 16:27:32 +0000 (17:27 +0100)] 
Move test algorithm configuration to isctest

Instead of invoking get_algorithms.py script repeatedly (which may yield
different results), move the algorithm configuration to an isctest
module. This ensures the variables are consistent across the entire test
run.

22 months agonew: usr: add support for external log rotation tools
Mark Andrews [Wed, 31 Jul 2024 08:48:51 +0000 (08:48 +0000)] 
new: usr: add support for external log rotation tools

Add two mechanisms to close open log files.  The first is `rndc closelogs`.  The second is `kill -USR1 <pid>`.
They are intended to be used with external log rotation tools.

Closes #4780

Merge branch '4780-add-support-for-external-log-rotation-tools' into 'main'

Closes #4780

See merge request isc-projects/bind9!9113

22 months agoTest that 'kill -USR1' works
Mark Andrews [Wed, 26 Jun 2024 00:53:14 +0000 (10:53 +1000)] 
Test that 'kill -USR1' works

22 months agoDocument that SIGUSR1 closes log files
Mark Andrews [Wed, 26 Jun 2024 00:55:24 +0000 (10:55 +1000)] 
Document that SIGUSR1 closes log files

22 months agoConfigure SIGUSR1 to close log files
Mark Andrews [Wed, 26 Jun 2024 00:47:47 +0000 (10:47 +1000)] 
Configure SIGUSR1 to close log files

Some external log file rotation programs use signals to tell programs
to close log files.  SIGHUP can be used to do this but it also does
a full reconfiguration.  Configure named to accept SIGUSR1 as a
signal to close log files.

22 months agoTest that 'rndc closelogs' works
Mark Andrews [Wed, 19 Jun 2024 00:43:49 +0000 (10:43 +1000)] 
Test that 'rndc closelogs' works

22 months agoAdd a rndc command to close currently open log files
Mark Andrews [Wed, 19 Jun 2024 00:20:33 +0000 (10:20 +1000)] 
Add a rndc command to close currently open log files

The new command is 'rndc closelogs'.

22 months agoSort NAMED_COMMAND_* defines
Mark Andrews [Tue, 18 Jun 2024 23:49:55 +0000 (09:49 +1000)] 
Sort NAMED_COMMAND_* defines

22 months agoCheck that FILE_STREAM(channel) is not already closed
Mark Andrews [Wed, 19 Jun 2024 07:16:34 +0000 (17:16 +1000)] 
Check that FILE_STREAM(channel) is not already closed

isc_log_closefilelogs can also close log files.  isc_log_doit failed
to check if the file handle was still valid before closing it.

22 months agofix: usr: Properly calculate the amount of system memory
Mark Andrews [Wed, 31 Jul 2024 07:28:39 +0000 (07:28 +0000)] 
fix: usr: Properly calculate the amount of system memory

On 32 bit machines isc_meminfo_totalphys could return an incorrect value.

Closes #4799

Merge branch '4799-cid-498034-overflowed-return-value-integer_overflow' into 'main'

Closes #4799

See merge request isc-projects/bind9!9132

22 months agoProperly compute the physical memory size
Mark Andrews [Tue, 9 Jul 2024 02:37:13 +0000 (12:37 +1000)] 
Properly compute the physical memory size

On a 32 bit machine casting to size_t can still lead to an overflow.
Cast to uint64_t.  Also detect all possible negative values for
pages and pagesize to silence warning about possible negative value.

    39#if defined(_SC_PHYS_PAGES) && defined(_SC_PAGESIZE)
     1. tainted_data_return: Called function sysconf(_SC_PHYS_PAGES),
           and a possible return value may be less than zero.
     2. assign: Assigning: pages = sysconf(_SC_PHYS_PAGES).
    40        long pages = sysconf(_SC_PHYS_PAGES);
    41        long pagesize = sysconf(_SC_PAGESIZE);
    42
     3. Condition pages == -1, taking false branch.
     4. Condition pagesize == -1, taking false branch.
    43        if (pages == -1 || pagesize == -1) {
    44                return (0);
    45        }
    46
     5. overflow: The expression (size_t)pages * pagesize might be negative,
           but is used in a context that treats it as unsigned.

    CID 498034: (#1 of 1): Overflowed return value (INTEGER_OVERFLOW)
    6. return_overflow: (size_t)pages * pagesize, which might have underflowed,
       is returned from the function.
    47        return ((size_t)pages * pagesize);
    48#endif /* if defined(_SC_PHYS_PAGES) && defined(_SC_PAGESIZE) */

22 months agochg: dev: Fix data race in clean_finds_at_name
Mark Andrews [Wed, 31 Jul 2024 05:34:48 +0000 (05:34 +0000)] 
chg: dev: Fix data race in clean_finds_at_name

Stop updating `find.result_v4` and `find.result_v4` in `clean_finds_at_name`. The values are supposed to be static.

Closes #4118

Merge branch '4118-data-race-lib-dns-adb-c-1537-in-clean_finds_at_name' into 'main'

Closes #4118

See merge request isc-projects/bind9!9108

22 months agoDo not update find.result_v4 and find.result_v6
Mark Andrews [Tue, 18 Jun 2024 06:22:31 +0000 (16:22 +1000)] 
Do not update find.result_v4 and find.result_v6

These values are supposed to be static for the life of the find and
clean_finds_at_name was updating them resulting in TSAN error
reports.

    WARNING: ThreadSanitizer: data race
    Write of size 4 at 0x000000000001 by thread T1 (mutexes: write M1, write M2):
      #0 clean_finds_at_name lib/dns/adb.c:1537
      #1 fetch_callback lib/dns/adb.c:4009
      #2 task_run lib/isc/task.c:815
      #3 isc_task_run lib/isc/task.c:896
      #4 isc__nm_async_task netmgr/netmgr.c:848
      #5 process_netievent netmgr/netmgr.c:920
      #6 process_queue netmgr/netmgr.c:1013
      #7 process_all_queues netmgr/netmgr.c:767
      #8 async_cb netmgr/netmgr.c:796
      #9 uv__async_io /usr/src/libuv-v1.44.1/src/unix/async.c:163
      #10 isc__trampoline_run lib/isc/trampoline.c:189

    Previous read of size 4 at 0x000000000001 by thread T2:
      #0 findname lib/dns/resolver.c:3749
      #1 fctx_getaddresses lib/dns/resolver.c:3993
      #2 fctx_try lib/dns/resolver.c:4390
      #3 rctx_nextserver lib/dns/resolver.c:10356
      #4 rctx_done lib/dns/resolver.c:10503
      #5 resquery_response lib/dns/resolver.c:8511
      #6 udp_recv lib/dns/dispatch.c:638
      #7 isc__nm_async_readcb netmgr/netmgr.c:2885
      #8 isc__nm_readcb netmgr/netmgr.c:2858
      #9 udp_recv_cb netmgr/udp.c:650
      #10 isc__nm_udp_read_cb netmgr/udp.c:1057
      #11 uv__udp_recvmsg /usr/src/libuv-v1.44.1/src/unix/udp.c:303
      #12 isc__trampoline_run lib/isc/trampoline.c:189

22 months agofix: test: Prevent intermittent setup.sh failures in the "statschannel" system test
Mark Andrews [Wed, 31 Jul 2024 04:42:43 +0000 (04:42 +0000)] 
fix: test: Prevent intermittent setup.sh failures in the "statschannel" system test

Don't verify the just signed zone as the RRSIGs could have expired before the signing process completes

Closes #4781 #2476

Merge branch '4781-statschannel-setup-can-fail-due-to-short-validity-interval' into 'main'

Closes #4781 and #2476

See merge request isc-projects/bind9!9114

22 months agoDisable post zone verification for manykeys
Mark Andrews [Wed, 19 Jun 2024 02:45:09 +0000 (12:45 +1000)] 
Disable post zone verification for manykeys

As the expiration time is now+1 the RRSIG records may expire before
the verification step happens.

22 months agochg: test: fix intermittent test failure dnssec system test
Matthijs Mekking [Tue, 30 Jul 2024 12:01:37 +0000 (12:01 +0000)] 
chg: test: fix intermittent test failure dnssec system test

Closes #4768

Merge branch '4768-dnssec-test-is-broken' into 'main'

Closes #4768

See merge request isc-projects/bind9!9101

22 months agoFix intermittent test failure dnssec system test
Matthijs Mekking [Tue, 11 Jun 2024 11:08:30 +0000 (13:08 +0200)] 
Fix intermittent test failure dnssec system test

The updatecheck-kskonly.secure zone is being used to test dynamic
updates while the KSK is offline. It ensures that the DNSKEY RRset
will retain the RRSIG record, while the updated data is being signed
with the currently active ZSK.

When walking through ZSK rollovers, ensure that the newest ZSK (ZSK3)
is published before doing the dynamic update, preventing timing
related test failures.

Also fix the test log line ($ZSK_ID3 was not yet created at the time
of logging).

22 months agofix: usr: Update key lifetime and metadata after dnssec-policy reconfig
Matthijs Mekking [Tue, 30 Jul 2024 10:13:01 +0000 (10:13 +0000)] 
fix: usr: Update key lifetime and metadata after dnssec-policy reconfig

Adjust key state and timing metadata if dnssec-policy key lifetime configuration is updated, so that it also
affects existing keys.

Closes #4677

Merge branch '4677-dnssec-policy-key-lifetime-reconfigure' into 'main'

Closes #4677

See merge request isc-projects/bind9!9118

22 months agoLog key calculation overflows
Mark Andrews [Wed, 26 Jun 2024 04:49:51 +0000 (14:49 +1000)] 
Log key calculation overflows

22 months agoCheck for overflow when adding lifetime
Mark Andrews [Wed, 26 Jun 2024 04:39:04 +0000 (14:39 +1000)] 
Check for overflow when adding lifetime

22 months agoNo longer update key lifetime if key is retired
Matthijs Mekking [Mon, 24 Jun 2024 13:18:40 +0000 (15:18 +0200)] 
No longer update key lifetime if key is retired

The key lifetime should no longer be adjusted if the key is being
retired earlier, for example because a manual rollover was started.

This would falsely be seen as a dnssec-policy lifetime reconfiguration,
and would adjust the retire/removed time again.

This also means we should update the status output, and the next
rollover scheduled is now calculated using (retire-active) instead of
key lifetime.

22 months agoUpdate key lifetime and metadata after reconfig
Matthijs Mekking [Mon, 24 Jun 2024 13:14:16 +0000 (15:14 +0200)] 
Update key lifetime and metadata after reconfig

If dnssec-policy is reconfigured and the key lifetime has changed,
update existing keys with the new lifetime and adjust the retire
and removed timing metadata accordingly.

If the key has no lifetime yet, just initialize the lifetime. It
may be that the retire/removed timing metadata has already been set.

Skip keys which goal is not set to omnipresent. These keys are already
in the progress of retiring, or still unused.

22 months agoTest updating dnssec-policy key lifetime
Matthijs Mekking [Mon, 24 Jun 2024 09:18:40 +0000 (11:18 +0200)] 
Test updating dnssec-policy key lifetime

Check if the key lifetime is updated in the key files. Make sure the
inactive and removed timing metadata are adjusted accordingly.

22 months agoMove dnssec-policy to kasp-fips.conf.in
Matthijs Mekking [Mon, 24 Jun 2024 08:01:37 +0000 (10:01 +0200)] 
Move dnssec-policy to kasp-fips.conf.in

All dnssec-policy configurations are here, so why not this one?

22 months agofix: doc: Fix type in key-store reference rst
Matthijs Mekking [Tue, 30 Jul 2024 08:36:17 +0000 (08:36 +0000)] 
fix: doc: Fix type in key-store reference rst

Closes #4813

Merge branch '4813-fix-typo-in-reference-rst' into 'main'

Closes #4813

See merge request isc-projects/bind9!9176

22 months agoFix backslashes on key-store block
Suzanne Goldlust [Wed, 24 Jul 2024 16:59:50 +0000 (16:59 +0000)] 
Fix backslashes on key-store block

22 months agochg: test: Retry job in case of AWS Spot Instance interruption event
Nicki Křížek [Mon, 29 Jul 2024 13:25:46 +0000 (13:25 +0000)] 
chg: test: Retry job in case of AWS Spot Instance interruption event

Closes #4777

Merge branch '4777-retry-job-aws-spot-instance-interruption-event' into 'main'

Closes #4777

See merge request isc-projects/bind9!9107

22 months agoRetry job in case of AWS Spot Instance interruption
Emanuel Petr [Mon, 17 Jun 2024 18:06:13 +0000 (20:06 +0200)] 
Retry job in case of AWS Spot Instance interruption

22 months agonew: dev: generate changelog from git log
Nicki Křížek [Mon, 29 Jul 2024 12:15:49 +0000 (12:15 +0000)] 
new: dev: generate changelog from git log

Use a single source of truth, the git log, to generate the list of CHANGES. Use the .rst format and include it in the ARM for a quick reference with proper gitlab links to issues and merge requests.

Closes #75

Merge branch 'nicki/add-gitchangelog' into 'main'

Closes #75

See merge request isc-projects/bind9!9152

22 months agoUpdate docs and processes to use the new changelog
Nicki Křížek [Wed, 24 Jul 2024 15:53:43 +0000 (17:53 +0200)] 
Update docs and processes to use the new changelog

22 months agoUpdate dangerfile for new changelog workflow
Nicki Křížek [Wed, 17 Jul 2024 12:15:47 +0000 (14:15 +0200)] 
Update dangerfile for new changelog workflow

22 months agoSkip pylint checks for contrib directory
Nicki Křížek [Mon, 22 Jul 2024 14:29:53 +0000 (16:29 +0200)] 
Skip pylint checks for contrib directory

The files in contrib/ directory shouldn't be subject to our pylint
check. They can come from external sources and we don't subject these to
the same standards as the rest of the BIND9 code / scripts.

22 months agoRemove changes job and related scripts
Nicki Křížek [Mon, 22 Jul 2024 14:28:10 +0000 (16:28 +0200)] 
Remove changes job and related scripts

These are no longer needed, since changelog is generated using
gitchangelog.

22 months agoAdd BIND9 configuration for gitchangelog
Nicki Křížek [Mon, 22 Jul 2024 12:52:13 +0000 (14:52 +0200)] 
Add BIND9 configuration for gitchangelog

The configuration has been crafted to cater for BIND9 needs:
- Define actions that have an equivalent section in existing Release
  Notes
- Assume the commits that have the necessary changelog makrup are merge
  commits from GitLab and transform them into messages and proper links
- Put the resulting changelog into the proper place in
  doc/arm/changelog.rst
- Have a separate configuration for changelog and release notes. Both of
  these should be generated from the `git log`, with release notes being
  subject to more scrutiny and further editing

22 months agoAdd new changelog file
Nicki Křížek [Mon, 22 Jul 2024 13:08:58 +0000 (15:08 +0200)] 
Add new changelog file

Create new changelog and include it in the documentation. Include the
previous CHANGES as plain text without any markup.

22 months agoAddress gitchangelog deprecation warning
Nicki Křížek [Mon, 22 Jul 2024 13:17:45 +0000 (15:17 +0200)] 
Address gitchangelog deprecation warning

22 months agoAdjust gitchangelog whitespace
Nicki Křížek [Wed, 17 Jul 2024 12:58:01 +0000 (14:58 +0200)] 
Adjust gitchangelog whitespace

Format the output to produce a nicer looking rst output, similar to the
former CHANGES file.

22 months agoAllow gitchangelog to include commit sha
Nicki Křížek [Mon, 22 Jul 2024 12:28:28 +0000 (14:28 +0200)] 
Allow gitchangelog to include commit sha

Add an option which can be used to put short commit sha at the end of
each commit subject line in the generated changelog.

22 months agoRemove authors from gitchangelog output
Nicki Křížek [Mon, 15 Jul 2024 13:59:19 +0000 (15:59 +0200)] 
Remove authors from gitchangelog output

Given our workflow, this could easily lead to misattribution. It's also
not an actionable information and it can be found in the MR / git log
instead.

22 months agoReformat gitchangelog with black
Nicki Křížek [Mon, 15 Jul 2024 13:51:30 +0000 (15:51 +0200)] 
Reformat gitchangelog with black

22 months agoImport gitchanglog 3.0.4
Nicki Křížek [Mon, 22 Jul 2024 12:41:00 +0000 (14:41 +0200)] 
Import gitchanglog 3.0.4

The  project hasn't seen any new development/changes since 2018 and it
seems unlikely we'd be able to get any changes into the upstream. Since
it's isolated into a single file and its task is fairly straighforward,
pull the code into our own repository and maintain it here as needed.

This also makes it easier to make any changes that are specific to our
project.

22 months agoSet up version and release notes for BIND 9.21.0
Nicki Křížek [Tue, 23 Jul 2024 16:33:22 +0000 (16:33 +0000)] 
Set up version and release notes for BIND 9.21.0

Merge branch 'nicki/set-up-version-and-release-notes-for-bind-9.21.0' into 'main'

See merge request isc-projects/bind9!9166

22 months agoSet up release notes for BIND 9.21.0
Nicki Křížek [Tue, 23 Jul 2024 15:31:46 +0000 (17:31 +0200)] 
Set up release notes for BIND 9.21.0

22 months agoUpdate BIND version to 9.21.0-dev
Nicki Křížek [Tue, 23 Jul 2024 15:31:46 +0000 (17:31 +0200)] 
Update BIND version to 9.21.0-dev

22 months agoMerge tag 'v9.20.0'
Nicki Křížek [Tue, 23 Jul 2024 15:15:41 +0000 (17:15 +0200)] 
Merge tag 'v9.20.0'

23 months agoUpdate BIND version to 9.20.0 v9.20.0
Nicki Křížek [Mon, 8 Jul 2024 13:01:00 +0000 (15:01 +0200)] 
Update BIND version to 9.20.0

23 months agoAdd a CHANGES marker
Nicki Křížek [Mon, 8 Jul 2024 12:58:59 +0000 (14:58 +0200)] 
Add a CHANGES marker

23 months agoMerge branch 'nicki/prepare-documentation-for-bind-9.20.0' into 'v9.20.0-release'
Nicki Křížek [Mon, 8 Jul 2024 12:55:47 +0000 (12:55 +0000)] 
Merge branch 'nicki/prepare-documentation-for-bind-9.20.0' into 'v9.20.0-release'

Prepare documentation for BIND 9.20.0

See merge request isc-private/bind9!710

23 months agoUpdate documentation for 9.20.0
Nicki Křížek [Mon, 8 Jul 2024 11:51:31 +0000 (13:51 +0200)] 
Update documentation for 9.20.0

23 months agoCreate release notes for 9.20.0
Nicki Křížek [Mon, 8 Jul 2024 11:31:31 +0000 (13:31 +0200)] 
Create release notes for 9.20.0

23 months agoExtend max-types-per-name documentation
Nicki Křížek [Mon, 8 Jul 2024 10:37:35 +0000 (12:37 +0200)] 
Extend max-types-per-name documentation

23 months agoDocument new -J option for dnssec-signzone and dnssec-verify
Nicki Křížek [Thu, 27 Jun 2024 11:31:55 +0000 (13:31 +0200)] 
Document new -J option for dnssec-signzone and dnssec-verify

23 months agoReorder release notes
Nicki Křížek [Wed, 12 Jun 2024 14:32:27 +0000 (16:32 +0200)] 
Reorder release notes