diff options
| author | Donatas Abraitis <donatas@opensourcerouting.org> | 2024-12-19 10:56:52 +0200 | 
|---|---|---|
| committer | Mergify <37929162+mergify[bot]@users.noreply.github.com> | 2024-12-19 21:57:21 +0000 | 
| commit | ad65b9b7f8897f2bc0e3d847ed0d1cd1815bd461 (patch) | |
| tree | 2674430f99c4c10ee6f9a77ebb78cc54c7d038e7 /bgpd | |
| parent | ad14f7a47ddf771f088f96a7fe362265aa16b211 (diff) | |
bgpd: Fix memory leak when creating BMP connection with a source interface
Testing done with:
```
for x in $(seq 1 100000); do vtysh -c 'conf' -c 'router bgp' -c 'bmp targets test' -c 'bmp connect localhost port 123 min-retry 100 max-retry 100 source-interface lo'; done
```
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit 7d19cb59cf5b129f61f3c568899343b3f031f9b4)
Diffstat (limited to 'bgpd')
| -rw-r--r-- | bgpd/bgp_bmp.c | 5 | 
1 files changed, 4 insertions, 1 deletions
diff --git a/bgpd/bgp_bmp.c b/bgpd/bgp_bmp.c index 00c9b200c6..4e18b21d72 100644 --- a/bgpd/bgp_bmp.c +++ b/bgpd/bgp_bmp.c @@ -2143,8 +2143,11 @@ DEFPY(bmp_connect,  	}  	ba = bmp_active_get(bt, hostname, port); -	if (srcif) +	if (srcif) { +		if (ba->ifsrc) +			XFREE(MTYPE_TMP, ba->ifsrc);  		ba->ifsrc = XSTRDUP(MTYPE_TMP, srcif); +	}  	if (min_retry_str)  		ba->minretry = min_retry;  	if (max_retry_str)  | 
