0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-11-18 17:18:42 +00:00
bird/filter
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
..
config.Y Preference moved to RTA and set explicitly in protocols 2021-10-13 19:09:04 +02:00
data.c Filter: Improve handling of sets in BGP path masks 2020-06-28 15:37:01 +02:00
data.h Preference moved to RTA and set explicitly in protocols 2021-10-13 19:09:04 +02:00
decl.m4 Reducing filter stack size to allow for lesser thread stack size 2021-09-10 18:11:28 +02:00
Doc Doc: Rename code documentation files back to Doc 2018-12-14 02:03:42 +01:00
f-inst.c Route sources have an explicit owner 2021-11-22 19:05:44 +01:00
f-inst.h Filter: Recursive filter iteration code 2021-02-07 19:21:42 +01:00
f-util.c Filter: Fix crash with 'where' filters and function calls 2019-09-10 13:45:18 +02:00
filter_test.c Converting the former BFD loop to a universal IO loop and protocol loop. 2021-11-22 19:05:43 +01:00
filter.c Table import and export are now explicit hooks. 2021-11-22 18:33:53 +01:00
filter.h Split route data structure to storage (ro) / manipulation (rw) structures. 2021-11-09 19:20:41 +01:00
Makefile Filter: Pre-evaluation of constant expressions 2019-07-02 10:45:53 +02:00
test-reconf-begin.conf Filters: comparison of functions and filters caching 2019-02-26 16:44:24 +01:00
test-reconf-end.conf Filters: comparison of functions and filters caching 2019-02-26 16:44:24 +01:00
test.conf Dropping the RTS_DUMMY temporary route storage. 2021-10-13 19:09:04 +02:00
test.conf2 Filter: Remove quitbird command 2020-05-02 02:47:18 +02:00
test.conf.inc filter/test.conf: Replace print func with assert and format 2016-11-16 12:22:01 +01:00
tree_test.c Filter: merged filter instruction constructors, counting line size on instruction construct 2019-02-20 22:30:54 +01:00
tree.c Filter: Recursive filter iteration code 2021-02-07 19:21:42 +01:00
trie_test.c Filter: Optimize IPv4 prefix sets 2020-03-26 03:57:48 +01:00
trie.c Filter: Remove mixed address tests and fix formatting 2020-03-26 04:59:15 +01:00