changelog-9.20.17.rst revision 1.1 1 1.1 christos .. Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2 1.1 christos ..
3 1.1 christos .. SPDX-License-Identifier: MPL-2.0
4 1.1 christos ..
5 1.1 christos .. This Source Code Form is subject to the terms of the Mozilla Public
6 1.1 christos .. License, v. 2.0. If a copy of the MPL was not distributed with this
7 1.1 christos .. file, you can obtain one at https://mozilla.org/MPL/2.0/.
8 1.1 christos ..
9 1.1 christos .. See the COPYRIGHT file distributed with this work for additional
10 1.1 christos .. information regarding copyright ownership.
11 1.1 christos
12 1.1 christos BIND 9.20.17
13 1.1 christos ------------
14 1.1 christos
15 1.1 christos New Features
16 1.1 christos ~~~~~~~~~~~~
17 1.1 christos
18 1.1 christos - Add spatch to detect implicit bool/int/result cast. ``02be363d1f``
19 1.1 christos
20 1.1 christos Detection of implicit cast from a boolean into an int, or an
21 1.1 christos isc_result_t into a boolean (either in an assignement or return
22 1.1 christos position).
23 1.1 christos
24 1.1 christos If such pattern is found, a warning comment is added into the code
25 1.1 christos (and the CI will fails) so the error can be spotted and manually
26 1.1 christos fixed. :gl:`!11237`
27 1.1 christos
28 1.1 christos Feature Changes
29 1.1 christos ~~~~~~~~~~~~~~~
30 1.1 christos
31 1.1 christos - Use atomics for CMM_{LOAD,STORE}_SHARED with ThreadSanitizer.
32 1.1 christos ``94fa721705``
33 1.1 christos
34 1.1 christos Upstream has removed the atomics implementation of CMM_LOAD_SHARED and
35 1.1 christos CMM_STORE_SHARED as these can be used also with non-stdatomics types.
36 1.1 christos As we only use the CMM api with stdatomics types, we can restore the
37 1.1 christos previous behaviour to prevent ThreadSanitizer warnings. :gl:`#5660`
38 1.1 christos :gl:`!11290`
39 1.1 christos
40 1.1 christos - Provide more information when the memory allocation fails.
41 1.1 christos ``6749725610``
42 1.1 christos
43 1.1 christos Provide more information about the failure when the memory allocation
44 1.1 christos fails. :gl:`!11304`
45 1.1 christos
46 1.1 christos - Reduce the number of outgoing queries. ``457b470e96``
47 1.1 christos
48 1.1 christos Reduces the number of outgoing queries when resolving the nameservers
49 1.1 christos for delegation points. This helps the DNS resolver with cold cache
50 1.1 christos resolve client queries with complex delegation chains and
51 1.1 christos redirections. :gl:`!11258`
52 1.1 christos
53 1.1 christos Bug Fixes
54 1.1 christos ~~~~~~~~~
55 1.1 christos
56 1.1 christos - Fix the spurious timeouts while resolving names. ``d96cf874fb``
57 1.1 christos
58 1.1 christos Sometimes the loops in the resolving (e.g. to resolve or validate
59 1.1 christos ns1.example.com we need to resolve ns1.example.com) were not properly
60 1.1 christos detected leading to spurious 10 seconds delay. This has been fixed
61 1.1 christos and such loops are properly detected. :gl:`#3033`, #5578 :gl:`!11298`
62 1.1 christos
63 1.1 christos - Fix bug where zone switches from NSEC3 to NSEC after retransfer.
64 1.1 christos ``3b40ffbf83``
65 1.1 christos
66 1.1 christos When a zone is re-transferred, but the zone journal on an
67 1.1 christos inline-signing secondary is out of sync, the zone could fall back to
68 1.1 christos using NSEC records instead of NSEC3. This has been fixed. :gl:`#5527`
69 1.1 christos :gl:`!11274`
70 1.1 christos
71 1.1 christos - Attach socket before async streamdns_resume_processing. ``bb9451c73f``
72 1.1 christos
73 1.1 christos Call to `streamdns_resume_processing` is asynchronous but the socket
74 1.1 christos passed as argument is not attached when scheduling the call.
75 1.1 christos
76 1.1 christos While there is no reproducible way (so far) to make the socket
77 1.1 christos reference number down to 0 before `streamdns_resume_processing` is
78 1.1 christos called, attach the socket before scheduling the call. This guard
79 1.1 christos against an hypothetic case where, for some reasons, the socket
80 1.1 christos refcount would reach 0, and be freed from memory when
81 1.1 christos `streamdns_resume_processing` is called. :gl:`#5620` :gl:`!11260`
82 1.1 christos
83 1.1 christos - AMTRELAY type 0 presentation format handling was wrong. ``adf104a063``
84 1.1 christos
85 1.1 christos RFC 8777 specifies a placeholder value of "." for the gateway field
86 1.1 christos when the gateway type is 0 (no gateway). This was not being checked
87 1.1 christos for nor emitted when displaying the record. This has been corrected.
88 1.1 christos
89 1.1 christos Instances of this record will need the placeholder period added to
90 1.1 christos them when upgrading. :gl:`#5639` :gl:`!11255`
91 1.1 christos
92 1.1 christos - Fix parsing bug in remote-servers with key or tls. ``d9400c5967``
93 1.1 christos
94 1.1 christos The :any:`remote-servers` clause enable the following pattern using a
95 1.1 christos named ``server-list``:
96 1.1 christos
97 1.1 christos remote-servers a { 1.2.3.4; ... }; remote-servers b { a key
98 1.1 christos foo; };
99 1.1 christos
100 1.1 christos However, such configuration was wrongly rejected, with an "unexpected
101 1.1 christos token 'foo'" error. Such configuration is now accepted. :gl:`#5646`
102 1.1 christos :gl:`!11300`
103 1.1 christos
104 1.1 christos - Fix TLS contexts cache object usage bug in the resolver.
105 1.1 christos ``13adf94006``
106 1.1 christos
107 1.1 christos :iscman:`named` could terminate unexpectedly when reconfiguring or
108 1.1 christos reloading, and if client-side TLS transport was in use (for example,
109 1.1 christos when forwarding queries to a DoT server). This has been fixed.
110 1.1 christos :gl:`#5653` :gl:`!11299`
111 1.1 christos
112 1.1 christos - Fix unitiailized pointer check on getipandkeylist. ``5ed0cf091b``
113 1.1 christos
114 1.1 christos Function `named_config_getipandkeylist` could, in case of error in the
115 1.1 christos early code attempting to get the `port` or `tls-port`, make a pointer
116 1.1 christos check on a non-initialized value. This is now fixed. :gl:`!11306`
117 1.1 christos
118 1.1 christos - Standardize CHECK and RETERR macros. ``ef714e91ac``
119 1.1 christos
120 1.1 christos previously, there were over 40 separate definitions of CHECK macros,
121 1.1 christos of which most used "goto cleanup", and the rest "goto failure" or
122 1.1 christos "goto out". there were another 10 definitions of RETERR, of which most
123 1.1 christos were identical to CHECK, but some simply returned a result code
124 1.1 christos instead of jumping to a cleanup label.
125 1.1 christos
126 1.1 christos this has now been standardized throughout the code base: RETERR is for
127 1.1 christos returning an error code in the case of an error, and CHECK is for
128 1.1 christos jumping to a cleanup tag, which is now always called "cleanup". both
129 1.1 christos macros are defined in isc/util.h. :gl:`!11069`
130 1.1 christos
131 1.1 christos - Adding NSEC3 opt-out records could leave invalid records in
132 1.1 christos chain. ``1d83a8ad46``
133 1.1 christos
134 1.1 christos When creating an NSEC3 opt-out chain, a node in the chain could be
135 1.1 christos removed too soon, causing the previous NSEC3 being unable to be found,
136 1.1 christos resulting in invalid NSEC3 records to be left in the zone. This has
137 1.1 christos been fixed.
138 1.1 christos
139 1.1 christos Closes [#5671](#5671)
140 1.1 christos
141