]> git.puffer.fish Git - matthieu/frr.git/commitdiff
bgpd: fix bgp evpn cli memory leaks.
authorAbhinay Ramesh <rabhinay@vmware.com>
Mon, 3 Jul 2023 09:40:11 +0000 (09:40 +0000)
committerMergify <37929162+mergify[bot]@users.noreply.github.com>
Tue, 18 Jul 2023 16:00:29 +0000 (16:00 +0000)
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 56b895c17242a608731b6b03a4909f258805caee)

bgpd/bgp_evpn_vty.c
bgpd/bgp_vty.c

index 66079cad2228135e98a18d7d7b071c90b3a8e296..0bf22806f03b14df3a5950ab85aedbe0b901d52c 100644 (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,
                                          ecomadd))
                bgp_evpn_mh_config_ead_export_rt(bgp, ecomadd, false);
+       else
+               ecommunity_free(&ecomadd);
 
        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);
 
+       ecommunity_free(&ecomdel);
        return CMD_SUCCESS;
 }
 
@@ -6941,6 +6944,8 @@ DEFUN (bgp_evpn_vni_rt,
                /* Do nothing if we already have this import route-target */
                if (!bgp_evpn_rt_matches_existing(vpn->import_rtl, ecomadd))
                        evpn_configure_import_rt(bgp, vpn, ecomadd);
+               else
+                       ecommunity_free(&ecomadd);
        }
 
        /* 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 */
                if (!bgp_evpn_rt_matches_existing(vpn->export_rtl, ecomadd))
                        evpn_configure_export_rt(bgp, vpn, ecomadd);
+               else
+                       ecommunity_free(&ecomadd);
        }
 
        return CMD_SUCCESS;
@@ -7064,6 +7071,7 @@ DEFUN (no_bgp_evpn_vni_rt,
                }
        }
 
+       ecommunity_free(&ecomdel);
        return CMD_SUCCESS;
 }
 
index 7063bc26ab2e402ea5467b6914a0b7b83b812f50..f50dd563e14e7324da920bca2c630b1ab0fcad79 100644 (file)
@@ -8567,6 +8567,8 @@ DEFPY (neighbor_soo,
                ecommunity_free(&peer->soo[afi][safi]);
                peer->soo[afi][safi] = ecomm_soo;
                peer_af_flag_unset(peer, afi, safi, PEER_FLAG_SOO);
+       } else {
+               ecommunity_free(&ecomm_soo);
        }
 
        return bgp_vty_return(vty,