0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-09-21 04:45:21 +00:00
bird/sysdep/unix
Maria Matejka f0507f05ce Route sources have an explicit owner
This commit prevents use-after-free of routes belonging to protocols
which have been already destroyed, delaying also all the protocols'
shutdown until all of their routes have been finally propagated through
all the pipes down to the appropriate exports.

The use-after-free was somehow hypothetic yet theoretically possible in
rare conditions, when one BGP protocol authors a lot of routes and the
user deletes that protocol by reconfiguring in the same time as next hop
update is requested, causing rte_better() to be called on a
not-yet-pruned network prefix while the owner protocol has been already
freed.

In parallel execution environments, this would happen an inter-thread
use-after-free, causing possible heisenbugs or other nasty problems.
2021-11-22 19:05:44 +01:00
..
alloc.c Multipage allocation 2021-10-13 19:01:22 +02:00
config.Y Log: Do not open logfiles when parse-and-exit option is active 2020-06-03 14:59:20 +02:00
coroutine.c Converting the former BFD loop to a universal IO loop and protocol loop. 2021-11-22 19:05:43 +01:00
Doc Doc: Rename code documentation files back to Doc 2018-12-14 02:03:42 +01:00
endian.h OpenBSD port related changes. 2009-05-11 01:32:49 +02:00
io-loop.c Adding a generic cork mechanism for events 2021-11-22 19:05:43 +01:00
io-loop.h Converting the former BFD loop to a universal IO loop and protocol loop. 2021-11-22 19:05:43 +01:00
io.c Adding a generic cork mechanism for events 2021-11-22 19:05:43 +01:00
krt.c Route sources have an explicit owner 2021-11-22 19:05:44 +01:00
krt.h Special table hooks rectified. 2021-11-22 19:05:43 +01:00
krt.Y Dynamic attributes definition split whether it is bitmask or not. 2019-07-03 00:00:11 +02:00
log.c Debug messages with timestamps. 2021-11-22 19:05:43 +01:00
main.c Converting the former BFD loop to a universal IO loop and protocol loop. 2021-11-22 19:05:43 +01:00
Makefile Moved BFD IO loop out of BFD as we want to use it as socket-io coroutine 2021-11-22 19:05:43 +01:00
random.c sysdep: Add wrapper to get random bytes - update 2021-06-06 16:26:06 +02:00
unix.h Converting the former BFD loop to a universal IO loop and protocol loop. 2021-11-22 19:05:43 +01:00