summaryrefslogtreecommitdiff
path: root/zebra/rib.h
diff options
context:
space:
mode:
authorIgor Ryzhov <iryzhov@nfware.com>2022-01-23 20:22:42 +0300
committerIgor Ryzhov <iryzhov@nfware.com>2022-02-01 18:20:30 +0300
commit0ef6eacc95c82014c04f13be3b641ff3983040ca (patch)
treeffbd3d6951c5baa1a955beba32891a610b5ceb1a /zebra/rib.h
parent7a90d91586290d872c05960427df2d3f031cc5e5 (diff)
zebra: fix cleanup of meta queues on vrf disable
Current code treats all metaqueues as lists of route_node structures. However, some queues contain other structures that need to be cleaned up differently. Casting the elements of those queues to struct route_node and dereferencing them leads to a crash. The crash may be seen when executing bgp_multi_vrf_topo2. Fix the code by using the proper list element types. Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Diffstat (limited to 'zebra/rib.h')
-rw-r--r--zebra/rib.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/zebra/rib.h b/zebra/rib.h
index a0ec1f0e4f..d5aec5d4c1 100644
--- a/zebra/rib.h
+++ b/zebra/rib.h
@@ -481,6 +481,8 @@ int zebra_rib_queue_evpn_rem_vtep_del(vrf_id_t vrf_id, vni_t vni,
struct in_addr vtep_ip);
extern void meta_queue_free(struct meta_queue *mq);
+extern void rib_meta_queue_free_vrf(struct meta_queue *mq,
+ struct zebra_vrf *zvrf);
extern int zebra_rib_labeled_unicast(struct route_entry *re);
extern struct route_table *rib_table_ipv6;