bgpd: fix bgp evpn cli memory leaks.

problem:
In CLI config codeflow there are memory leaks in failure scenario

Fix:
Code changes are done to free ecommunity

Signed-off-by: Abhinay Ramesh <rabhinay@vmware.com>
(cherry picked from commit 56b895c172)
This commit is contained in:
Abhinay Ramesh 2023-07-03 09:40:11 +00:00 committed by Mergify
parent 3265f1a67c
commit 06729c106f
2 changed files with 10 additions and 0 deletions

View File

@ -6853,6 +6853,8 @@ DEFUN(bgp_evpn_ead_es_rt, bgp_evpn_ead_es_rt_cmd,
if (!bgp_evpn_rt_matches_existing(bgp_mh_info->ead_es_export_rtl, if (!bgp_evpn_rt_matches_existing(bgp_mh_info->ead_es_export_rtl,
ecomadd)) ecomadd))
bgp_evpn_mh_config_ead_export_rt(bgp, ecomadd, false); bgp_evpn_mh_config_ead_export_rt(bgp, ecomadd, false);
else
ecommunity_free(&ecomadd);
return CMD_SUCCESS; return CMD_SUCCESS;
} }
@ -6890,6 +6892,7 @@ DEFUN(no_bgp_evpn_ead_es_rt, no_bgp_evpn_ead_es_rt_cmd,
} }
bgp_evpn_mh_config_ead_export_rt(bgp, ecomdel, true); bgp_evpn_mh_config_ead_export_rt(bgp, ecomdel, true);
ecommunity_free(&ecomdel);
return CMD_SUCCESS; return CMD_SUCCESS;
} }
@ -6941,6 +6944,8 @@ DEFUN (bgp_evpn_vni_rt,
/* Do nothing if we already have this import route-target */ /* Do nothing if we already have this import route-target */
if (!bgp_evpn_rt_matches_existing(vpn->import_rtl, ecomadd)) if (!bgp_evpn_rt_matches_existing(vpn->import_rtl, ecomadd))
evpn_configure_import_rt(bgp, vpn, ecomadd); evpn_configure_import_rt(bgp, vpn, ecomadd);
else
ecommunity_free(&ecomadd);
} }
/* Add/update the export route-target */ /* Add/update the export route-target */
@ -6957,6 +6962,8 @@ DEFUN (bgp_evpn_vni_rt,
/* Do nothing if we already have this export route-target */ /* Do nothing if we already have this export route-target */
if (!bgp_evpn_rt_matches_existing(vpn->export_rtl, ecomadd)) if (!bgp_evpn_rt_matches_existing(vpn->export_rtl, ecomadd))
evpn_configure_export_rt(bgp, vpn, ecomadd); evpn_configure_export_rt(bgp, vpn, ecomadd);
else
ecommunity_free(&ecomadd);
} }
return CMD_SUCCESS; return CMD_SUCCESS;
@ -7064,6 +7071,7 @@ DEFUN (no_bgp_evpn_vni_rt,
} }
} }
ecommunity_free(&ecomdel);
return CMD_SUCCESS; return CMD_SUCCESS;
} }

View File

@ -8567,6 +8567,8 @@ DEFPY (neighbor_soo,
ecommunity_free(&peer->soo[afi][safi]); ecommunity_free(&peer->soo[afi][safi]);
peer->soo[afi][safi] = ecomm_soo; peer->soo[afi][safi] = ecomm_soo;
peer_af_flag_unset(peer, afi, safi, PEER_FLAG_SOO); peer_af_flag_unset(peer, afi, safi, PEER_FLAG_SOO);
} else {
ecommunity_free(&ecomm_soo);
} }
return bgp_vty_return(vty, return bgp_vty_return(vty,