0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-11-18 17:18:42 +00:00
bird/lib
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
..
alloca.h Several minor fixes 2017-02-20 02:26:45 +01:00
birdlib.h Converting the former BFD loop to a universal IO loop and protocol loop. 2021-11-22 19:05:43 +01:00
bitmap_test.c Lib: Basic and hierarchical bitmaps 2019-11-26 18:39:02 +01:00
bitmap.c Nest: Use bitmaps to keep track of exported routes 2019-11-26 18:39:25 +01:00
bitmap.h Nest: Use bitmaps to keep track of exported routes 2019-11-26 18:39:25 +01:00
bitops_test.c Birdtest: Replace BT_SUCCESS and BT_FAILURE with 1 and 0 2016-11-11 17:43:09 +01:00
bitops.c Initial commit on integrated BIRD 2015-11-05 12:48:52 +01:00
bitops.h Slab: head now uses bitmask for used/free nodes info instead of lists 2021-03-25 16:47:48 +01:00
blake2-impl.h Lib: Add Blake2s and Blake2b hash functions 2021-06-06 16:26:58 +02:00
blake2-kat.h Lib: Add tests for blake2s and blake2b 2021-06-06 16:28:09 +02:00
blake2.h Lib: Add Blake2s and Blake2b hash functions 2021-06-06 16:26:58 +02:00
blake2b.c Lib: Add Blake2s and Blake2b hash functions 2021-06-06 16:26:58 +02:00
blake2s.c Lib: Add Blake2s and Blake2b hash functions 2021-06-06 16:26:58 +02:00
buffer_test.c Static: Minor overhaul 2017-03-09 13:47:00 +01:00
buffer.h Filter: Recursive filter iteration code 2021-02-07 19:21:42 +01:00
checksum_test.c Birdtest: Replace BT_SUCCESS and BT_FAILURE with 1 and 0 2016-11-11 17:43:09 +01:00
checksum.c unsigned [int] -> uint 2015-06-08 02:24:08 +02:00
checksum.h unsigned [int] -> uint 2015-06-08 02:24:08 +02:00
coro.h 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
event_test.c Converting the former BFD loop to a universal IO loop and protocol loop. 2021-11-22 19:05:43 +01:00
event.c Adding a generic cork mechanism for events 2021-11-22 19:05:43 +01:00
event.h Adding a generic cork mechanism for events 2021-11-22 19:05:43 +01:00
fletcher16_test.c Fletcher16 test fixed to work at bigendian architectures. 2020-04-05 01:15:26 +02:00
fletcher16.h OSPF: Redesign LSA checksumming 2015-05-01 14:40:56 +02:00
flowspec_test.c Converting the former BFD loop to a universal IO loop and protocol loop. 2021-11-22 19:05:43 +01:00
flowspec.c Flowspec: Documentation update 2021-05-18 20:41:01 +02:00
flowspec.h Flowspec: Fix values for true/false operators 2021-05-14 18:44:52 +02:00
hash_test.c Birdtest: Replace BT_SUCCESS and BT_FAILURE with 1 and 0 2016-11-11 17:43:09 +01:00
hash.h Preference moved to RTA and set explicitly in protocols 2021-10-13 19:09:04 +02:00
heap_test.c Birdtest: Replace BT_SUCCESS and BT_FAILURE with 1 and 0 2016-11-11 17:43:09 +01:00
heap.h BFD work in progress. 2013-09-16 23:57:40 +02:00
idm.c Merge branch 'master' into int-new 2016-11-08 19:27:58 +01:00
idm.h Move ID allocator to a separate file and use it also in OSPF 2015-12-29 15:42:12 +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
ip_test.c IPv6 address parser: fail on incomplete addresses 2020-05-01 15:19:12 +02:00
ip.c IPv6 address parser: fail on incomplete addresses 2020-05-01 15:19:12 +02:00
ip.h Filter: Add MPLS label route attribute 2021-05-17 17:50:04 +02:00
lists_test.c Lists: Replaced replace_node() by update_node() which is the only use of that function. 2020-05-01 15:19:12 +02:00
lists.c Locking subsystem: Just a global BIRD lock to begin with. 2021-11-22 19:05:43 +01:00
lists.h Converting the former BFD loop to a universal IO loop and protocol loop. 2021-11-22 19:05:43 +01:00
locking.h Route sources have an explicit owner 2021-11-22 19:05:44 +01:00
mac_test.c Lib: Add tests for blake2s and blake2b 2021-06-06 16:28:09 +02:00
mac.c Nest: Allow MAC algorithms to specify min/max key length 2021-06-06 16:28:18 +02:00
mac.h Nest: Allow MAC algorithms to specify min/max key length 2021-06-06 16:28:18 +02:00
macro.h Macro: Added a bunch of dirty C preprocessor tricks 2018-05-29 11:53:51 +02:00
Makefile Lib: Add Blake2s and Blake2b hash functions 2021-06-06 16:26:58 +02:00
md5.c Add generic message authentication interface 2016-11-02 16:23:53 +01:00
md5.h Add generic message authentication interface 2016-11-02 16:23:53 +01:00
mempool.c Linpools may use pages instead of xmalloc 2021-10-13 19:00:36 +02:00
net.c Add support for source-specific IPv6 routes to BIRD core 2018-02-13 16:39:07 +01:00
net.h BGP: Handle flowspec rules without dst part 2020-03-03 17:45:16 +01:00
patmatch_test.c Birdtest: Replace BT_SUCCESS and BT_FAILURE with 1 and 0 2016-11-11 17:43:09 +01:00
patmatch.c Some consts for function arguments 2015-11-24 13:52:26 +01:00
printf_test.c Lib: Support for 64-bit numbers in bvsnprintf() 2019-10-09 17:53:23 +02:00
printf.c Lib: Support for 64-bit numbers in bvsnprintf() 2019-10-09 17:53:23 +02:00
resource.c Multipage allocation 2021-10-13 19:01:22 +02:00
resource.h Linpools may use pages instead of xmalloc 2021-10-13 19:00:36 +02:00
resource.sgml Fixes for the programmer's manual. 2000-06-08 12:37:21 +00:00
sha1.c Add generic message authentication interface 2016-11-02 16:23:53 +01:00
sha1.h Add generic message authentication interface 2016-11-02 16:23:53 +01:00
sha256.c Add generic message authentication interface 2016-11-02 16:23:53 +01:00
sha256.h Add generic message authentication interface 2016-11-02 16:23:53 +01:00
sha512.c Add generic message authentication interface 2016-11-02 16:23:53 +01:00
sha512.h Add generic message authentication interface 2016-11-02 16:23:53 +01:00
slab.c Multipage allocation 2021-10-13 19:01:22 +02:00
slist_test.c Birdtest: Replace BT_SUCCESS and BT_FAILURE with 1 and 0 2016-11-11 17:43:09 +01:00
slists.c Unit Testing for BIRD 2016-11-09 16:36:34 +01:00
slists.h Temporary integrated OSPF commit. 2014-06-26 11:58:57 +02:00
socket.h Adding a generic cork mechanism for events 2021-11-22 19:05:43 +01:00
string.h Nest: Allow specifying security keys as hex bytes as well as strings 2021-06-06 16:28:18 +02:00
strtoul.c Nest: Allow specifying security keys as hex bytes as well as strings 2021-06-06 16:28:18 +02:00
tbf.c Timers: Fix TBF and some last remains 2017-12-07 13:53:42 +01:00
timer.c Converting the former BFD loop to a universal IO loop and protocol loop. 2021-11-22 19:05:43 +01:00
timer.h Converting the former BFD loop to a universal IO loop and protocol loop. 2021-11-22 19:05:43 +01:00
unaligned.h The MRT protocol 2018-11-20 17:45:35 +01:00
xmalloc.c unsigned [int] -> uint 2015-06-08 02:24:08 +02:00