From: Donald Sharp Date: Thu, 3 Sep 2015 18:26:36 +0000 (-0700) Subject: Bgpd: aspath json memory leak fix X-Git-Tag: frr-2.0-rc1~1266 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=4390a8eee79f19bc2923d229df2a8cfbf9ba5d5e;p=matthieu%2Ffrr.git Bgpd: aspath json memory leak fix Ticket: CM-6790 Reviewed by: CCR-3453 Testing: See bug This code change fixes these things: (a) Fixes an assert followed by an if statement (B) Fixes the memory leak in aspath->json --- diff --git a/bgpd/bgp_aspath.c b/bgpd/bgp_aspath.c index a270d8cd76..c9a6f3fd9e 100644 --- a/bgpd/bgp_aspath.c +++ b/bgpd/bgp_aspath.c @@ -710,8 +710,6 @@ aspath_hash_alloc (void *arg) /* Malformed AS path value. */ assert (aspath->str); - if (! aspath->str) - return NULL; /* New aspath structure is needed. */ new = XMALLOC (MTYPE_AS_PATH, sizeof (struct aspath)); @@ -860,6 +858,11 @@ aspath_parse (struct stream *s, size_t length, int use32bit) assegment_free_all (as.segments); /* aspath_key_make() always updates the string */ XFREE (MTYPE_AS_STR, as.str); + if (as.json) + { + json_object_free(as.json); + as.json = NULL; + } } find->refcnt++;