diff options
author | paul <paul> | 2007-02-22 17:48:42 +0000 |
---|---|---|
committer | paul <paul> | 2007-02-22 17:48:42 +0000 |
commit | 228ae5b6cd57e27b17626ae7f02d8b3685c3ef67 (patch) | |
tree | c531c0a9c7052d2323ea42511d27e8566e494246 /lib/regex-gnu.h | |
parent | ae72b951e7b5876f5152ac5fec296bae5f7939e1 (diff) | |
download | quagga-228ae5b6cd57e27b17626ae7f02d8b3685c3ef67.tar.bz2 quagga-228ae5b6cd57e27b17626ae7f02d8b3685c3ef67.tar.xz |
[bgpd] Peer delete can race with reconfig leading to crash
2007-02-22 Paul Jakma <paul.jakma@sun.com>
* bgp_fsm.c: (bgp_fsm_change_status) Handle state change into
clearing or greater here. Simpler.
(bgp_event) Clearing state change work moved to previous
* bgp_route.c: (bgp_clear_route_node) Clearing adj-in here
is too late, as it leaves a race between a peer being deleted
and an identical peer being configured before clearing
completes, leading to a crash.
Simplest fix is to clean peers Adj-in up-front, rather than
queueing such work.
(bgp_clear_route_table) Clear peer's Adj-In and Adj-Out
up-front here, rather than queueing such work.
Extensive comment added on the various bits of indexed data
that exist and how they need to be dealt with.
(bgp_clear_route) Update comment.
Diffstat (limited to 'lib/regex-gnu.h')
0 files changed, 0 insertions, 0 deletions