Import bind-9.20.22 (previous was 9.20.18)
Notes for BIND 9.20.22
Security Fixes
Fix crash when reconfiguring zone update policy during active updates.
We fixed a crash that could occur when running rndc reconfig to change a zone's
update policy (e.g., from allow-update to update-policy) while DNS UPDATE
requests were being processed for that zone. ISC would like to thank Vitaly
Simonovich for bringing this issue to our attention. [GL #5817]
Bug Fixes
Fix intermittent named crashes during asynchronous zone operations.
Asynchronous zone loading and dumping operations occasionally dispatched tasks
to the wrong internal event loop. This threading violation triggered internal
safety assertions that abruptly terminated named. Strict loop affinity is now
enforced for these tasks, ensuring they execute on their designated threads and
preventing the crashes. [GL #4882]
Count temporal problems with DNSSEC validation as attempts.
[160 lines not shown]
libc/softfloat: prevent undefined behavior in floating point conversions
See the previous commit for details.
The same code pattern occur in the bits32 implementation, as well as in
other copies of the same upstream code, for example in libkern.
lint: add query for negation of minimum signed value
This helped double-check that the remaining negations in the
softfloat/bits64 code are fine. There are some false positives, due to
int16 being typedef'd to int, thus being int32 realistically.
lint: don't rely on the floating point rounding mode
When checking whether a floating point constant can be converted to an
integer constant with the same value, ULLONG_MAX is not representable
exactly in a 64-bit long double, so the comparison value could have been
rounded down, leading to wrong warnings about lossy conversions.
Perform exact calculations instead.
lint: remove temporary code to identify floating point bug
On sparc64, SoftFloat 2a invoked undefined behavior, returning wrong
results. The code added here didn't trigger, as the ATF_SH environment
variable was not set in the real test run.
See tests/lib/libc/t_long_double.c for more specialized tests to
pinpoint the exact problem.