From: hasso Date: Fri, 27 May 2005 03:26:57 +0000 (+0000) Subject: * bgp_routemap.c: Stop leaking communities. X-Git-Tag: frr-2.0-rc1~2994 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=70601e0691e178ca23f14fdc666a97efce26897f;p=mirror%2Ffrr.git * bgp_routemap.c: Stop leaking communities. Fixes bugzilla #89. [backport candidate] --- diff --git a/bgpd/ChangeLog b/bgpd/ChangeLog index 7c339221fd..2969c3261c 100644 --- a/bgpd/ChangeLog +++ b/bgpd/ChangeLog @@ -1,3 +1,7 @@ +2005-05-27 Hasso Tepper + + * bgp_routemap.c: Stop leaking communities. + 2005-05-27 Hasso Tepper * bgpd.c: Deleting bgp->rsclient list needs fix similar to pree-groups diff --git a/bgpd/bgp_routemap.c b/bgpd/bgp_routemap.c index fc2c8fd96a..6c10987bd1 100644 --- a/bgpd/bgp_routemap.c +++ b/bgpd/bgp_routemap.c @@ -1268,6 +1268,10 @@ route_set_community (void *rule, struct prefix *prefix, new = community_dup (rcs->com); attr->community = new; + + if (old) + community_free (old); + attr->flag |= ATTR_FLAG_BIT (BGP_ATTR_COMMUNITIES); } @@ -1448,6 +1452,9 @@ route_set_ecommunity_rt (void *rule, struct prefix *prefix, bgp_info->attr->ecommunity = new_ecom; + if (old_ecom) + ecommunity_free (old_ecom); + bgp_info->attr->flag |= ATTR_FLAG_BIT (BGP_ATTR_EXT_COMMUNITIES); } return RMAP_OKAY;