bind9/lib
Ondřej Surý 62cb5b30da Copy only the raw data when we are copying dns_slab{header,vec}
The makeslab function in rdataslab.c contains an optimization for cases
where the source is already an rdataslab. In these cases, it copies the
entire slab using memmove.  However, this creates a race condition: while
the target slab is protected by a node lock, the source slab is not
protected.  This becomes problematic because the TTL heap needs to
modify the heap index stored in the slab header, potentially while the
memmove operation is reading from it.

A closer look at makeslab shows that copying the header part of the slab
is unnecessary, the header can be default-initialized instead. This MR
modifies makeslab to copy only the raw part of the slab, while
default-initializing the header, eliminating the race condition.  For
consistency, it also applies the same change to vecheader/makevec.
2025-12-16 18:09:09 +01:00
..
dns Copy only the raw data when we are copying dns_slab{header,vec} 2025-12-16 18:09:09 +01:00
isc Fix formatting 2025-12-10 12:18:34 +01:00
isccc switch to RETERR where it wasn't being used 2025-12-03 13:45:43 -08:00
isccfg shrunk cfgobj down from 48 bytes to 40 bytes 2025-12-06 08:51:23 +01:00
ns Log serial when IXFR version not in journal 2025-12-10 15:24:29 +00:00
.gitignore The isc/platform.h header has been completely removed 2021-07-06 05:33:48 +00:00
meson.build replace the build system with meson 2025-06-11 10:30:12 +03:00