0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-11-10 05:08:42 +00:00
bird/nest
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
..
a-path_test.c Converting the former BFD loop to a universal IO loop and protocol loop. 2021-11-22 19:05:43 +01:00
a-path.c Nest: Implement BGP path mask loop operator 2020-05-18 16:25:08 +02:00
a-set_test.c Converting the former BFD loop to a universal IO loop and protocol loop. 2021-11-22 19:05:43 +01:00
a-set.c Filter: Merged postfixify routine 2019-02-20 22:30:54 +01:00
attrs.h Nest: Implement BGP path mask loop operator 2020-05-18 16:25:08 +02:00
bfd.h BFD: Allow per-request session options 2020-11-08 15:33:22 +01:00
bird.h Initial commit on integrated BIRD 2015-11-05 12:48:52 +01:00
cli.c CLI: Fix continuation lines after final one 2019-11-26 16:43:09 +01:00
cli.h Show info from multiple protocols when protocol is not specified 2020-06-28 15:38:47 +02:00
cmds.c BGP: Add support for BGP hostname capability 2021-02-10 16:53:57 +01:00
cmds.h Filter refactoring: dropped the recursion from the interpreter 2019-02-20 22:30:54 +01:00
config.Y 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
iface.c Nest: Fix neighbor handling for colliding ranges 2020-05-11 04:29:36 +02:00
iface.h Nest: Fix neighbor handling for colliding ranges 2020-05-11 04:29:36 +02:00
limit.h Limit containment 2021-11-09 19:20:41 +01:00
locks.c Lib: Add and use ev_new_init() 2018-10-01 15:55:23 +02:00
locks.h Nest: VRF support for neighbor cache and olock code 2017-09-12 15:49:36 +02:00
Makefile Nest: split route show into separate file 2017-05-15 12:10:51 +02:00
neighbor.c Some minor sl_allocz() cleanups 2020-11-24 03:21:44 +01:00
password.c Nest: Allow MAC algorithms to specify min/max key length 2021-06-06 16:28:18 +02:00
password.h Nest: Allow MAC algorithms to specify min/max key length 2021-06-06 16:28:18 +02:00
proto-hooks.c Dropping rte-local dumper entries 2021-10-13 19:09:05 +02:00
proto.c Route sources have an explicit owner 2021-11-22 19:05:44 +01:00
proto.sgml Channels - explicit links between protocols and tables 2016-02-01 10:28:50 +01:00
protocol.h Route sources have an explicit owner 2021-11-22 19:05:44 +01:00
route.h Route sources have an explicit owner 2021-11-22 19:05:44 +01:00
rt-attr.c Route sources have an explicit owner 2021-11-22 19:05:44 +01:00
rt-dev.c Route sources have an explicit owner 2021-11-22 19:05:44 +01:00
rt-dev.h Nest: SADR support for Direct 2018-03-18 02:56:51 +01:00
rt-fib.c RIP: Demand circuit support (RFC 2091) 2020-02-21 02:35:50 +01:00
rt-show.c Route sources have an explicit owner 2021-11-22 19:05:44 +01:00
rt-table.c Route sources have an explicit owner 2021-11-22 19:05:44 +01:00