From cd9cc0e64a657b2f5970d9035debc085674f117a Mon Sep 17 00:00:00 2001 From: Igor Ryzhov Date: Wed, 11 Aug 2021 12:22:21 +0300 Subject: [PATCH] bgpd: fix memory leaks in bgp_show_table Signed-off-by: Igor Ryzhov --- bgpd/bgp_route.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c index 6039a91f7d..c12d2394f3 100644 --- a/bgpd/bgp_route.c +++ b/bgpd/bgp_route.c @@ -10728,12 +10728,14 @@ static int bgp_show_table(struct vty *vty, struct bgp *bgp, safi_t safi, const char *com2alias = bgp_community2alias( communities[i]); - if (strcmp(alias, com2alias) - == 0) { + if (!found + && strcmp(alias, com2alias) + == 0) found = true; - break; - } + XFREE(MTYPE_TMP, + communities[i]); } + XFREE(MTYPE_TMP, communities); } if (!found && pi->attr->lcommunity) { @@ -10743,12 +10745,14 @@ static int bgp_show_table(struct vty *vty, struct bgp *bgp, safi_t safi, const char *com2alias = bgp_community2alias( communities[i]); - if (strcmp(alias, com2alias) - == 0) { + if (!found + && strcmp(alias, com2alias) + == 0) found = true; - break; - } + XFREE(MTYPE_TMP, + communities[i]); } + XFREE(MTYPE_TMP, communities); } if (!found)