diff options
| author | Donatas Abraitis <donatas@opensourcerouting.org> | 2022-07-22 17:38:54 +0300 | 
|---|---|---|
| committer | Donatas Abraitis <donatas@opensourcerouting.org> | 2022-07-22 17:43:45 +0300 | 
| commit | e88307cf3cc0af239a7d013f323668d6247b5f3a (patch) | |
| tree | b0a814091738b8d9b491242392429dd917e1f6c6 /bgpd/bgp_filter.c | |
| parent | b8443f7ad39ce0429f53c286d04a84b6faaeef83 (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.c | 1 | 
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;  	}  | 
