]> git.proxmox.com Git - mirror_frr.git/commitdiff
bgpd: rfapi properly free a couple lists
authorDonald Sharp <sharpd@nvidia.com>
Wed, 21 Dec 2022 20:22:24 +0000 (15:22 -0500)
committerDonald Sharp <sharpd@nvidia.com>
Wed, 21 Dec 2022 20:22:24 +0000 (15:22 -0500)
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
bgpd/rfapi/bgp_rfapi_cfg.c

index eae9859ba188caa2d1f4560d7c5fd099fe863097..b65d90e1b38dd62d357c2bf5475eda2d02e774ed 100644 (file)
@@ -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)