summaryrefslogtreecommitdiff
path: root/bgpd/bgp_filter.c
diff options
context:
space:
mode:
authorDonatas Abraitis <donatas@opensourcerouting.org>2022-07-22 17:38:54 +0300
committerDonatas Abraitis <donatas@opensourcerouting.org>2022-07-22 17:43:45 +0300
commite88307cf3cc0af239a7d013f323668d6247b5f3a (patch)
treeb0a814091738b8d9b491242392429dd917e1f6c6 /bgpd/bgp_filter.c
parentb8443f7ad39ce0429f53c286d04a84b6faaeef83 (diff)
bgpd: Free memory for as-path filter if regexp is wrong
Before: ``` $ vtysh -c 'sh memory bgpd | include Temporary'; echo ; for x in $(seq 1 1000); do vtysh -c 'conf' -c 'bgp as-path access-list belekas permit wrong' >/dev/null; done; vtysh -c 'sh memory bgpd | include Temporary' Temporary memory : 19 variable 504 22 656 Temporary memory : 1019 variable 24504 1023 24656 ``` After: ``` $ vtysh -c 'sh memory bgpd | include Temporary'; echo ; for x in $(seq 1 1000); do vtysh -c 'conf' -c 'bgp as-path access-list belekas permit wrong' >/dev/null; done; vtysh -c 'sh memory bgpd | include Temporary' Temporary memory : 19 variable 504 22 656 Temporary memory : 19 variable 504 24 680 ``` Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Diffstat (limited to 'bgpd/bgp_filter.c')
-rw-r--r--bgpd/bgp_filter.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/bgpd/bgp_filter.c b/bgpd/bgp_filter.c
index 9543c97303..8921622953 100644
--- a/bgpd/bgp_filter.c
+++ b/bgpd/bgp_filter.c
@@ -485,6 +485,7 @@ DEFUN(as_path, bgp_as_path_cmd,
if (!config_bgp_aspath_validate(regstr)) {
vty_out(vty, "Invalid character in as-path access-list %s\n",
regstr);
+ XFREE(MTYPE_TMP, regstr);
return CMD_WARNING_CONFIG_FAILED;
}