diff options
| author | Igor Ryzhov <iryzhov@nfware.com> | 2022-01-23 20:22:42 +0300 |
|---|---|---|
| committer | Igor Ryzhov <iryzhov@nfware.com> | 2022-02-01 18:20:30 +0300 |
| commit | 0ef6eacc95c82014c04f13be3b641ff3983040ca (patch) | |
| tree | ffbd3d6951c5baa1a955beba32891a610b5ceb1a /zebra/rib.h | |
| parent | 7a90d91586290d872c05960427df2d3f031cc5e5 (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.h | 2 |
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; |
