Home | History | Annotate | Line # | Download | only in changelog
      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