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
This commit is contained in:
Donald Sharp 2015-09-03 11:26:36 -07:00
parent 958cab2207
commit 4390a8eee7

View File

@ -710,8 +710,6 @@ aspath_hash_alloc (void *arg)
/* Malformed AS path value. */ /* Malformed AS path value. */
assert (aspath->str); assert (aspath->str);
if (! aspath->str)
return NULL;
/* New aspath structure is needed. */ /* New aspath structure is needed. */
new = XMALLOC (MTYPE_AS_PATH, sizeof (struct aspath)); 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); assegment_free_all (as.segments);
/* aspath_key_make() always updates the string */ /* aspath_key_make() always updates the string */
XFREE (MTYPE_AS_STR, as.str); XFREE (MTYPE_AS_STR, as.str);
if (as.json)
{
json_object_free(as.json);
as.json = NULL;
}
} }
find->refcnt++; find->refcnt++;