From b8a3608aa59a67364f05dbd0d0332371a200f226 Mon Sep 17 00:00:00 2001 From: "Ondrej Zajicek (work)" Date: Sat, 26 Jan 2019 19:48:16 +0100 Subject: BGP: Cleanup channels when going down When going up, uncleaned old channel state may trigger unexpected conditions crashing bird. --- proto/bgp/bgp.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'proto/bgp/bgp.c') diff --git a/proto/bgp/bgp.c b/proto/bgp/bgp.c index 43f9f134..8dedde9f 100644 --- a/proto/bgp/bgp.c +++ b/proto/bgp/bgp.c @@ -1692,6 +1692,11 @@ bgp_channel_cleanup(struct channel *C) if (c->igp_table_ip6) rt_unlock_table(c->igp_table_ip6); + + c->index = 0; + + /* Cleanup rest of bgp_channel starting at pool field */ + memset(&(c->pool), 0, sizeof(struct bgp_channel) - OFFSETOF(struct bgp_channel, pool)); } static inline struct bgp_channel_config * -- cgit v1.2.3