From 736e6a45e6cfda9bd7a84d7423e23a69902225e0 Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Tue, 27 Oct 2020 15:16:32 -0400 Subject: [PATCH] bgpd: Prevent ecomm memory leak There are some situations where we create a ecommunity for comparing to internal state when we are deleting, but in the failure cases we would not free up the created memory. Signed-off-by: Donald Sharp --- bgpd/bgp_evpn_vty.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bgpd/bgp_evpn_vty.c b/bgpd/bgp_evpn_vty.c index b2491e1187..e9e2aafebb 100644 --- a/bgpd/bgp_evpn_vty.c +++ b/bgpd/bgp_evpn_vty.c @@ -5297,6 +5297,7 @@ DEFUN (no_bgp_evpn_vrf_rt, if (rt_type == RT_TYPE_IMPORT) { if (!bgp_evpn_rt_matches_existing(bgp->vrf_import_rtl, ecomdel)) { + ecommunity_free(&ecomdel); vty_out(vty, "%% RT specified does not match configuration for this VRF\n"); return CMD_WARNING; @@ -5305,6 +5306,7 @@ DEFUN (no_bgp_evpn_vrf_rt, } else if (rt_type == RT_TYPE_EXPORT) { if (!bgp_evpn_rt_matches_existing(bgp->vrf_export_rtl, ecomdel)) { + ecommunity_free(&ecomdel); vty_out(vty, "%% RT specified does not match configuration for this VRF\n"); return CMD_WARNING; @@ -5326,12 +5328,14 @@ DEFUN (no_bgp_evpn_vrf_rt, } if (!found_ecomdel) { + ecommunity_free(&ecomdel); vty_out(vty, "%% RT specified does not match configuration for this VRF\n"); return CMD_WARNING; } } + ecommunity_free(&ecomdel); return CMD_SUCCESS; } -- 2.39.5