Commit Graph
29126 Commits
Author SHA1 Message Date
Mark Andrews d09991e4e9 Adjust default value of "max-recursion-queries"
Since the queries sent towards root and TLD servers are now included in
the count (as a result of the fix for CVE-2020-8616),
"max-recursion-queries" has a higher chance of being exceeded by
non-attack queries.  Increase its default value from 75 to 100.

(cherry picked from commit ab0bf49203)
2020-12-01 22:13:05 +00:00
Mark Andrews 53203b8f04 Merge branch '2280-check-dname-handling-when-qtype-is-cname-any-2' into 'v9_11'
Resolve "Check DNAME handling when QTYPE is CNAME/ANY"

See merge request isc-projects/bind9!4394
2020-12-01 22:12:35 +00:00
Mark AndrewsandEvan Hunt ca9dc40634 Fix DNAME when QTYPE is CNAME or ANY
The synthesised CNAME is not supposed to be followed when the
QTYPE is CNAME or ANY as the lookup is satisfied by the CNAME
record.
2020-12-01 11:46:32 -08:00
Mark Andrews 0720c50351 Merge branch '2315-bind-9-11-22-9-11-25-fails-to-build-for-aep-hsm-native-pkcs11-v9_11' into 'v9_11'
Resolve "BIND 9.11.22 - 9.11.25 fails to build for AEP HSM native pkcs11"

See merge request isc-projects/bind9!4446
2020-12-01 13:51:40 +00:00
Mark Andrews b578dd70d9 Add release note for [GL #2315]
(cherry picked from commit 356243aaec)
2020-12-01 23:31:16 +11:00
Mark Andrews f9f8dc24e0 Add CHANGES
(cherry picked from commit 11a3545e32)
2020-12-01 23:19:46 +11:00
Mark Andrews 0e7a4169bd Fix misplaced declaration
(cherry picked from commit 49b9219bb3)
2020-12-01 23:19:46 +11:00
Michał Kępień 319b718638 Merge branch '2310-make-docbook-sources-namespaced-again' into 'v9_11'
Make DocBook sources namespaced again

See merge request isc-projects/bind9!4440
2020-11-30 08:35:49 +00:00
Michał Kępień dfdd3a8a2f Make DocBook sources namespaced again
Every DocBook source document can be namespaced (DocBook 5) or
non-namespaced (DocBook 4).  The set of XSL stylesheets used for
producing an output document can also be namespaced or non-namespaced.
Namespaced source documents should be used with namespaced stylesheets
and non-namespaced source documents should be used with non-namespaced
stylesheets.  However, both stylesheet flavors contain processing rules
which allow them to be used interchangeably for any type of source
document.

Unfortunately, these processing rules became broken in version 1.79.1 of
the stylesheets, which means that non-namespaced source documents can no
longer be correctly transformed into man pages using namespaced
stylesheets and vice versa.  This problem was fixed upstream [1], but no
released version of the XSL stylesheets contains that fix yet.

Back in 2016, this problem was reported as RT #43831 and allegedly fixed
in commit 1b8ce3b330.  However, that fix
only helped for the non-namespaced version of the stylesheets - while
also breaking man page generation for the namespaced flavor.

Since using namespaced DocBook sources is the current best practice
(DocBook 5), make BIND DocBook sources namespaced again.  When using
version 1.79.1 or 1.79.2 of the XSL stylesheets, care must be taken to
ensure namespaced stylesheets are used for generating BIND
documentation.

[1] https://github.com/docbook/xslt10-stylesheets/issues/109
2020-11-30 09:33:32 +01:00
Mark Andrews 31a35b9364 Merge branch '2275-tighten-dns-cookie-response-handling-v9_11' into 'v9_11'
Resolve "Tighten DNS COOKIE response handling"

See merge request isc-projects/bind9!4439
2020-11-26 23:35:55 +00:00
Mark Andrews 21caa1bd21 Add release note for [GL #2275]
(cherry picked from commit d0dd71380b)
2020-11-27 10:20:40 +11:00
Mark Andrews f9de8808a2 Add CHANGES note for [GL #2275]
(cherry picked from commit 15e7a4b047)
2020-11-27 10:20:40 +11:00
Mark Andrews 28f1cbb007 Add comment about cookie sizes
(cherry picked from commit 304df53991)
2020-11-27 10:20:40 +11:00
Mark Andrews 81e5877520 Check that missing cookies are handled
(cherry picked from commit bd9155590e)
2020-11-27 10:20:40 +11:00
Mark Andrews cdf73095ab Tighten DNS COOKIE response handling
Fallback to TCP when we have already seen a DNS COOKIE response
from the given address and don't have one in this UDP response. This
could be a server that has turned off DNS COOKIE support, a
misconfigured anycast server with partial DNS COOKIE support, or a
spoofed response. Falling back to TCP is the correct behaviour in
all 3 cases.

(cherry picked from commit 0e3b1f5a25)
2020-11-27 09:28:09 +11:00
Michal Nowak d50cc1d81a Merge branch '2224-fixup-core-back-traces-v9_11' into 'v9_11'
[v9_11] Resolve "Fixup core back traces."

See merge request isc-projects/bind9!4436
2020-11-26 17:41:39 +00:00
Michal Nowak 76d1c90ef7 Write traceback file to the same directory as core file
The traceback files could overwrite each other on systems which do not
use different core dump file names for different processes.  Prevent
that by writing the traceback file to the same directory as the core
dump file.

These changes still do not prevent the operating system from overwriting
a core dump file if the same binary crashes multiple times in the same
directory and core dump files are named identically for different
processes.

(cherry picked from commit 6428fc26af)
2020-11-26 18:25:44 +01:00
Mark AndrewsandMichal Nowak 43c1e5be46 Unify whitespace in bin/tests/system/run.sh
Replace tabs with spaces to make whitespace consistent across the entire
bin/tests/system/run.sh script.

(cherry picked from commit 0f0a006c)
2020-11-26 18:21:05 +01:00
Michal Nowak 0a5cf72042 Merge branch '1770-review-how-we-use-sys-un-h-v9_11' into 'v9_11'
[v9_11] Fix typo in ISC_PLAFORM_HAVESYSUNH

See merge request isc-projects/bind9!4433
2020-11-26 14:40:45 +00:00
Michal Nowak bbed152e5d Fix typo in ISC_PLAFORM_HAVESYSUNH
(cherry picked from commit 8885f4a6f7)
2020-11-26 15:09:36 +01:00
Michał Kępień bbec074db6 Merge branch 'michal/use-centos-6-instead-of-debian-sid-in-i386-ci-jobs' into 'v9_11'
Use CentOS 6 instead of Debian sid in i386 CI jobs

See merge request isc-projects/bind9!4431
2020-11-26 13:49:03 +00:00
Michał Kępień 95eec2b5a7 Use CentOS 6 instead of Debian sid in i386 CI jobs
Due to seccomp issues with 32-bit Debian sid Docker containers that
prevent us from easily updating the contents of the 32-bit Debian sid
Docker image, switch to CentOS 6 for building and testing 32-bit
versions of BIND in GitLab CI.
2020-11-26 13:27:08 +01:00
Michał Kępień 72ecd8803f Merge branch 'michal/use-proper-cmocka-macros-for-pointer-checks-v9_11' into 'v9_11'
[v9_11] Use proper cmocka macros for pointer checks

See merge request isc-projects/bind9!4430
2020-11-26 12:25:35 +00:00
Michał Kępień fa989e4236 Use proper cmocka macros for pointer checks
Make sure pointer checks in unit tests use cmocka assertion macros
dedicated for use with pointers instead of those dedicated for use with
integers or booleans.

(cherry picked from commit f440600126)
2020-11-26 13:15:28 +01:00
Michał Kępień 5da3f59953 Merge branch 'v9_11_25-release' into 'v9_11'
[v9_11] Merge 9.11.25 release branch

See merge request isc-projects/bind9!4428
2020-11-26 11:39:33 +00:00
Michał Kępień 43bc51d502 Set up release notes for BIND 9.11.26 2020-11-26 12:37:08 +01:00
Michał Kępień 4776e3b27c Bump BIND_BASELINE_VERSION for ABI checks 2020-11-26 12:37:08 +01:00
Tinderbox UserandMichał Kępień 855c2689cb Merge branch 'prep-release' into v9_11_25-release 2020-11-26 12:33:58 +01:00
Michał Kępień 694c355ed6 Merge branch 'michal/prepare-release-notes-for-bind-9.11.25' into 'v9_11_25-release'
Prepare release notes for BIND 9.11.25

See merge request isc-private/bind9!222
2020-11-26 12:33:58 +01:00
Tinderbox UserandMichał Kępień 66faf3215c prep 9.11.25 2020-11-26 12:33:58 +01:00
Michał Kępień 588579f172 Prepare release notes for BIND 9.11.25 2020-11-26 12:33:58 +01:00
Michał Kępień 913a469182 Add release note for GL #2244 2020-11-26 12:33:58 +01:00
Michał Kępień cbcc61cf22 Add release note for GL #2236 2020-11-26 12:33:58 +01:00
Michał Kępień d07cb06823 Add release note for GL #1736 2020-11-26 12:33:58 +01:00
Michał Kępień 81b900cb86 Tweak and reword recent CHANGES entries 2020-11-26 12:33:58 +01:00
Michał Kępień f9a991b1a3 Merge branch 'michal/fix-cppcheck-2.2-issues-v9_11' into 'v9_11'
[v9_11] Fix cppcheck 2.2 issues

See merge request isc-projects/bind9!4414
2020-11-25 12:59:43 +00:00
Mark AndrewsandMichał Kępień c5fff690ad Remove now redundant check for state != NULL
(cherry picked from commit ee135d8946)
2020-11-25 13:42:12 +01:00
Michał Kępień 47c206f386 Silence cppcheck 2.2 false positive in udp_recv()
cppcheck 2.2 reports the following false positive:

    lib/dns/dispatch.c:1220:14: warning: Either the condition 'resp==NULL' is redundant or there is possible null pointer dereference: resp. [nullPointerRedundantCheck]
     if (disp != resp->disp) {
                 ^
    lib/dns/dispatch.c:1191:11: note: Assuming that condition 'resp==NULL' is not redundant
     if (resp == NULL) {
              ^
    lib/dns/dispatch.c:1220:14: note: Null pointer dereference
     if (disp != resp->disp) {
                 ^

Apparently this version of cppcheck gets confused about conditional
"goto" statements because line 1220 can never be reached if 'resp' is
NULL.

Move a code block to prevent the above false positive from being
reported without affecting the processing logic.

(cherry picked from commit 0b6216d1c7)
2020-11-25 13:42:12 +01:00
Michał Kępień 5055fc7385 Remove cppcheck 2.0 false positive workarounds
The cppcheck bug which commit 41b4af5d20
works around was fixed in cppcheck 2.2.  Drop the relevant hack from the
definition of the cppcheck GitLab CI job.

(cherry picked from commit f06dfe0397)
2020-11-25 13:42:12 +01:00
Michał Kępień 06f8ce0ac7 Merge branch 'michal/enable-stress-tests-to-be-run-on-demand-v9_11' into 'v9_11'
[v9_11] Enable "stress" tests to be run on demand

See merge request isc-projects/bind9!4409
2020-11-23 10:56:31 +00:00
Michał Kępień 7408ab8d1e Enable "stress" tests to be run on demand
The "stress" test can be run in different ways, depending on:

  - the tested scenario (authoritative, recursive),
  - the operating system used (Linux, FreeBSD),
  - the architecture used (amd64, arm64).

Currently, all supported "stress" test variants are automatically
launched for all scheduled pipelines and for pipelines started for tags;
there is no possibility of running these tests on demand, which could be
useful in certain circumstances.

Employ the "only:variables" key to enable fine-grained control over the
list of "stress" test jobs to be run for a given pipeline.  Three CI
variables are used to specify the list of "stress" test jobs to create:

  - BIND_STRESS_TEST_MODE: specifies the test mode to use; must be
    explicitly set in order for any "stress" test job to be created;
    allowed values are: "authoritative", "recursive",

  - BIND_STRESS_TEST_OS: specifies the operating system to run the test
    on; allowed values are: "linux", "freebsd"; defaults to "linux", may
    be overridden at pipeline creation time,

  - BIND_STRESS_TEST_ARCH: specifies the architecture to run the test
    on; allowed values are: "amd64", "arm64"; defaults to "amd64", may
    be overridden at pipeline creation time.

Since case-insensitive regular expressions are used for determining
which jobs to run, every variable described above may contain multiple
values.  For example, setting the BIND_STRESS_TEST_MODE variable to
"authoritative,recursive" will cause the "stress" test to be run in both
supported scenarios (either on the default OS/architecture combination,
i.e. Linux/amd64, or, if the relevant variables are explicitly
specified, the requested OS/architecture combinations).

(cherry picked from commit f23094223e)
2020-11-23 11:54:45 +01:00
Mark Andrews 646b831f04 Merge branch '2211-tsan-error-previous_closest_nsec-dns_rbt_findnode-vs-subtractrdataset-v9_11' into 'v9_11'
Address TSAN error between dns_rbt_findnode() and subtractrdataset().

See merge request isc-projects/bind9!4385
2020-11-10 22:37:47 +00:00
Mark Andrews 62158e1882 Address TSAN error between dns_rbt_findnode() and subtractrdataset().
Having dns_rbt_findnode() in previous_closest_nsec() check of
node->data is a optimisation that triggers a TSAN error with
subtractrdataset().  find_closest_nsec() still needs to check if
the NSEC record are active or not and look for a earlier NSEC records
if it isn't.  Set DNS_RBTFIND_EMPTYDATA so node->data isn't referenced
without the node lock being held.

    WARNING: ThreadSanitizer: data race
    Read of size 8 at 0x000000000001 by thread T1 (mutexes: read M1, read M2):
    #0 dns_rbt_findnode lib/dns/rbt.c:1708
    #1 previous_closest_nsec lib/dns/rbtdb.c:3760
    #2 find_closest_nsec lib/dns/rbtdb.c:3942
    #3 zone_find lib/dns/rbtdb.c:4091
    #4 dns_db_findext lib/dns/db.c:536
    #5 query_lookup lib/ns/query.c:5582
    #6 ns__query_start lib/ns/query.c:5505
    #7 query_setup lib/ns/query.c:5229
    #8 ns_query_start lib/ns/query.c:11380
    #9 ns__client_request lib/ns/client.c:2166
    #10 processbuffer netmgr/tcpdns.c:230
    #11 dnslisten_readcb netmgr/tcpdns.c:309
    #12 read_cb netmgr/tcp.c:832
    #13 <null> <null>
    #14 <null> <null>

    Previous write of size 8 at 0x000000000001 by thread T2 (mutexes: write M3):
    #0 subtractrdataset lib/dns/rbtdb.c:7133
    #1 dns_db_subtractrdataset lib/dns/db.c:742
    #2 diff_apply lib/dns/diff.c:368
    #3 dns_diff_apply lib/dns/diff.c:459
    #4 do_one_tuple lib/dns/update.c:247
    #5 update_one_rr lib/dns/update.c:275
    #6 delete_if_action lib/dns/update.c:689
    #7 foreach_rr lib/dns/update.c:471
    #8 delete_if lib/dns/update.c:716
    #9 dns_update_signaturesinc lib/dns/update.c:1948
    #10 receive_secure_serial lib/dns/zone.c:15637
    #11 dispatch lib/isc/task.c:1152
    #12 run lib/isc/task.c:1344
    #13 <null> <null>

    Location is heap block of size 130 at 0x000000000028 allocated by thread T3:
    #0 malloc <null>
    #1 default_memalloc lib/isc/mem.c:713
    #2 mem_get lib/isc/mem.c:622
    #3 mem_allocateunlocked lib/isc/mem.c:1268
    #4 isc___mem_allocate lib/isc/mem.c:1288
    #5 isc__mem_allocate lib/isc/mem.c:2453
    #6 isc___mem_get lib/isc/mem.c:1037
    #7 isc__mem_get lib/isc/mem.c:2432
    #8 create_node lib/dns/rbt.c:2239
    #9 dns_rbt_addnode lib/dns/rbt.c:1202
    #10 dns_rbtdb_create lib/dns/rbtdb.c:8668
    #11 dns_db_create lib/dns/db.c:118
    #12 receive_secure_db lib/dns/zone.c:16154
    #13 dispatch lib/isc/task.c:1152
    #14 run lib/isc/task.c:1344
    #15 <null> <null>

    Mutex M1 (0x000000000040) created at:
    #0 pthread_rwlock_init <null>
    #1 isc_rwlock_init lib/isc/rwlock.c:39
    #2 dns_rbtdb_create lib/dns/rbtdb.c:8527
    #3 dns_db_create lib/dns/db.c:118
    #4 receive_secure_db lib/dns/zone.c:16154
    #5 dispatch lib/isc/task.c:1152
    #6 run lib/isc/task.c:1344
    #7 <null> <null>

    Mutex M2 (0x000000000044) created at:
    #0 pthread_rwlock_init <null>
    #1 isc_rwlock_init lib/isc/rwlock.c:39
    #2 dns_rbtdb_create lib/dns/rbtdb.c:8600
    #3 dns_db_create lib/dns/db.c:118
    #4 receive_secure_db lib/dns/zone.c:16154
    #5 dispatch lib/isc/task.c:1152
    #6 run lib/isc/task.c:1344
    #7 <null> <null>

    Mutex M3 (0x000000000046) created at:
    #0 pthread_rwlock_init <null>
    #1 isc_rwlock_init lib/isc/rwlock.c:39
    #2 dns_rbtdb_create lib/dns/rbtdb.c:8600
    #3 dns_db_create lib/dns/db.c:118
    #4 receive_secure_db lib/dns/zone.c:16154
    #5 dispatch lib/isc/task.c:1152
    #6 run lib/isc/task.c:1344
    #7 <null> <null>

    Thread T1 (running) created by main thread at:
    #0 pthread_create <null>
    #1 isc_thread_create pthreads/thread.c:73
    #2 isc_nm_start netmgr/netmgr.c:232
    #3 create_managers bin/named/main.c:909
    #4 setup bin/named/main.c:1223
    #5 main bin/named/main.c:1523

    Thread T2 (running) created by main thread at:
    #0 pthread_create <null>
    #1 isc_thread_create pthreads/thread.c:73
    #2 isc_taskmgr_create lib/isc/task.c:1434
    #3 create_managers bin/named/main.c:915
    #4 setup bin/named/main.c:1223
    #5 main bin/named/main.c:1523

    Thread T3 (running) created by main thread at:
    #0 pthread_create <null>
    #1 isc_thread_create pthreads/thread.c:73
    #2 isc_taskmgr_create lib/isc/task.c:1434
    #3 create_managers bin/named/main.c:915
    #4 setup bin/named/main.c:1223
    #5 main bin/named/main.c:1523

    SUMMARY: ThreadSanitizer: data race lib/dns/rbt.c:1708 in dns_rbt_findnode

(cherry picked from commit 244f84a84b)
2020-11-11 08:25:55 +11:00
Michal Nowak a231e1e535 Merge branch 'mnowak/test-with-DDEBUG-v9_11' into 'v9_11'
[v9_11] Enable debug build on Tumbleweed in CI

See merge request isc-projects/bind9!4372
2020-11-10 16:31:25 +00:00
Michal Nowak c35170217d Enable debug build on Tumbleweed in CI
(cherry picked from commit 59a09b5db8)
(cherry picked from commit 271e6e3b6bc2697d3ed17e767cf9ffd650fcb9c6)
2020-11-10 17:30:35 +01:00
Michal Nowak e2e374d7ca Merge branch 'he32-test-fix-v9_11' into 'v9_11'
[v9_11] Avoid a non-standard bashism: use of "==" in "test".

See merge request isc-projects/bind9!4380
2020-11-10 13:15:06 +00:00
Havard EidnesandMichal Nowak e73d2f6bbe Avoid a non-standard bashism: use of "==" in "test".
(cherry picked from commit 1f83daa4ac)
2020-11-10 14:13:57 +01:00
Mark Andrews f86f910486 Merge branch '2259-zone_namerd_tostr-called-w-o-lock-being-held-v9_11' into 'v9_11'
Lock zone before calling zone_namerd_tostr()

See merge request isc-projects/bind9!4378
2020-11-10 06:57:52 +00:00
Mark Andrews b2bccc68a5 Lock zone before calling zone_namerd_tostr()
WARNING: ThreadSanitizer: data race
    Read of size 8 at 0x000000000001 by thread T1:
    #0 inline_raw lib/dns/zone.c:1375
    #1 zone_namerd_tostr lib/dns/zone.c:15316
    #2 dns_zone_name lib/dns/zone.c:15391
    #3 xfrin_log lib/dns/xfrin.c:1605
    #4 xfrin_destroy lib/dns/xfrin.c:1477
    #5 dns_xfrin_detach lib/dns/xfrin.c:739
    #6 xfrin_connect_done lib/dns/xfrin.c:970
    #7 tcpdnsconnect_cb netmgr/tcpdns.c:786
    #8 tcp_connect_cb netmgr/tcp.c:292
    #9 <null> <null>
    #10 <null> <null>

    Previous write of size 8 at 0x000000000001 by thread T2 (mutexes: write M1):
    #0 zone_shutdown lib/dns/zone.c:14462
    #1 dispatch lib/isc/task.c:1152
    #2 run lib/isc/task.c:1344
    #3 <null> <null>

    Location is heap block of size 2769 at 0x000000000013 allocated by thread T3:
    #0 malloc <null>
    #1 default_memalloc lib/isc/mem.c:713
    #2 mem_get lib/isc/mem.c:622
    #3 mem_allocateunlocked lib/isc/mem.c:1268
    #4 isc___mem_allocate lib/isc/mem.c:1288
    #5 isc__mem_allocate lib/isc/mem.c:2453
    #6 isc___mem_get lib/isc/mem.c:1037
    #7 isc__mem_get lib/isc/mem.c:2432
    #8 dns_zone_create lib/dns/zone.c:984
    #9 configure_zone bin/named/server.c:6502
    #10 do_addzone bin/named/server.c:13391
    #11 named_server_changezone bin/named/server.c:13788
    #12 named_control_docommand bin/named/control.c:207
    #13 control_command bin/named/controlconf.c:392
    #14 dispatch lib/isc/task.c:1152
    #15 run lib/isc/task.c:1344
    #16 <null> <null>

(cherry picked from commit 84f43903da)
2020-11-10 17:16:43 +11:00
Michał Kępień 5ce19734b9 Merge branch 'michal/miscellaneous-windows-tweaks-v9_11' into 'v9_11'
[v9_11] Miscellaneous Windows tweaks

See merge request isc-projects/bind9!4361
2020-11-05 14:13:44 +00:00