]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
fix: dev: Unpack struct vecheader
authorAlessio Podda <alessio@isc.org>
Tue, 16 Dec 2025 17:06:12 +0000 (17:06 +0000)
committerAlessio Podda <alessio@isc.org>
Tue, 16 Dec 2025 17:06:12 +0000 (17:06 +0000)
The bitset packing of the resign_lsb and heap_index in struct vecheader was causing a race condition, since both bindrdataset and heap operations tried to access the same byte (even though they are accessing different fields).

While heap operations are protected by the node lock of the header being inserted, they aren't protected by the node locks of the headers being displaced, leading to the race condition.

This MR fixes the issue by reverting the struct packing optimization.

Closes #5688

Merge branch '5688-no-heap-index-bitset' into 'main'

See merge request isc-projects/bind9!11378


Trivial merge