From 8ea624a496a8456f63321320e24a72cd780513aa Mon Sep 17 00:00:00 2001 From: Donatas Abraitis Date: Wed, 15 Mar 2023 14:52:21 +0200 Subject: [PATCH] bgpd: Unlock bgp dest node if leak_update() fails Signed-off-by: Donatas Abraitis --- bgpd/bgp_mplsvpn.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/bgpd/bgp_mplsvpn.c b/bgpd/bgp_mplsvpn.c index 551da69249..c08f95cdf4 100644 --- a/bgpd/bgp_mplsvpn.c +++ b/bgpd/bgp_mplsvpn.c @@ -1647,6 +1647,8 @@ void vpn_leak_from_vrf_update(struct bgp *to_bgp, /* to */ */ if (new_info) vpn_leak_to_vrf_update(from_bgp, new_info, NULL); + else + bgp_dest_unlock_node(bn); } void vpn_leak_from_vrf_withdraw(struct bgp *to_bgp, /* to */ @@ -2075,9 +2077,11 @@ static bool vpn_leak_to_vrf_update_onevrf(struct bgp *to_bgp, /* to */ zlog_debug("%s: pfx %pBD: num_labels %d", __func__, path_vpn->net, num_labels); - leak_update(to_bgp, bn, new_attr, afi, safi, path_vpn, pLabels, - num_labels, src_vrf, &nexthop_orig, nexthop_self_flag, - debug); + if (!leak_update(to_bgp, bn, new_attr, afi, safi, path_vpn, pLabels, + num_labels, src_vrf, &nexthop_orig, nexthop_self_flag, + debug)) + bgp_dest_unlock_node(bn); + return true; } -- 2.39.5