From 227352c4611a9024c93b22c94c7bbd9ac474effe Mon Sep 17 00:00:00 2001 From: Maria Matejka Date: Wed, 8 Mar 2023 19:28:31 +0100 Subject: BGP Export Table: Fixed route source objects leaking when prefix best routes is updated --- proto/bgp/attrs.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'proto') diff --git a/proto/bgp/attrs.c b/proto/bgp/attrs.c index 8dc5ac3e..1c934301 100644 --- a/proto/bgp/attrs.c +++ b/proto/bgp/attrs.c @@ -1702,7 +1702,16 @@ bgp_get_prefix(struct bgp_pending_tx *c, const net_addr *net, struct rte_src *sr struct bgp_prefix *px = HASH_FIND(c->prefix_hash, PXH, net, path_id_hash, hash); if (px) + { + if (!add_path_tx && (path_id != px->path_id)) + { + rt_unlock_source(rt_find_source_global(px->path_id)); + rt_lock_source(src); + px->path_id = path_id; + } + return px; + } if (c->prefix_slab) px = sl_alloc(c->prefix_slab); -- cgit v1.2.3