summaryrefslogtreecommitdiff
path: root/bgpd
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@nvidia.com>2022-12-21 15:22:24 -0500
committerMergify <37929162+mergify[bot]@users.noreply.github.com>2022-12-27 20:07:54 +0000
commit1cec86b9c6e00bd65d0d0be220e7d7afbf949523 (patch)
treedf63d3d67926ae2a8ec65b11ba11f8353773880e /bgpd
parent2fdad4aef49a2a82f220f19b5bb611d05026fa31 (diff)
bgpd: rfapi properly free a couple lists
Signed-off-by: Donald Sharp <sharpd@nvidia.com> (cherry picked from commit c560f0698f425d4c054e13eccc9df87431cdb73f)
Diffstat (limited to 'bgpd')
-rw-r--r--bgpd/rfapi/bgp_rfapi_cfg.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/bgpd/rfapi/bgp_rfapi_cfg.c b/bgpd/rfapi/bgp_rfapi_cfg.c
index eae9859ba1..b65d90e1b3 100644
--- a/bgpd/rfapi/bgp_rfapi_cfg.c
+++ b/bgpd/rfapi/bgp_rfapi_cfg.c
@@ -3847,6 +3847,13 @@ struct rfapi_cfg *bgp_rfapi_cfg_new(struct rfapi_rfp_cfg *cfg)
return h;
}
+static void bgp_rfapi_rfgn_list_delete(void *data)
+{
+ struct rfapi_rfg_name *rfgn = data;
+ free(rfgn->name);
+ rfgn_free(rfgn);
+}
+
void bgp_rfapi_cfg_destroy(struct bgp *bgp, struct rfapi_cfg *h)
{
afi_t afi;
@@ -3858,8 +3865,13 @@ void bgp_rfapi_cfg_destroy(struct bgp *bgp, struct rfapi_cfg *h)
if (h->l2_groups != NULL)
list_delete(&h->l2_groups);
list_delete(&h->nve_groups_sequential);
+
+ h->rfg_export_direct_bgp_l->del = bgp_rfapi_rfgn_list_delete;
list_delete(&h->rfg_export_direct_bgp_l);
+
+ h->rfg_export_zebra_l->del = bgp_rfapi_rfgn_list_delete;
list_delete(&h->rfg_export_zebra_l);
+
if (h->default_rt_export_list)
ecommunity_free(&h->default_rt_export_list);
if (h->default_rt_import_list)