BGP memory leak in peer hostname

Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by:   Donald Sharp <sharpd@cumulusnetworks.com>

Ticket: CM-9786
This commit is contained in:
Daniel Walton 2016-03-10 03:58:48 +00:00
parent 73a5e55447
commit f9e9e0736f
2 changed files with 28 additions and 3 deletions

View File

@ -160,10 +160,32 @@ peer_xfer_conn(struct peer *from_peer)
from_peer->last_event = last_evt;
from_peer->last_major_event = last_maj_evt;
peer->remote_id = from_peer->remote_id;
if (from_peer->hostname != NULL)
peer->hostname = XSTRDUP(MTYPE_HOST, from_peer->hostname);
{
if (peer->hostname)
{
XFREE(MTYPE_HOST, peer->hostname);
peer->hostname = NULL;
}
peer->hostname = XSTRDUP(MTYPE_HOST, from_peer->hostname);
XFREE(MTYPE_HOST, from_peer->hostname);
from_peer->hostname = NULL;
}
if (from_peer->domainname != NULL)
peer->domainname = XSTRDUP(MTYPE_HOST, from_peer->domainname);
{
if (peer->domainname)
{
XFREE(MTYPE_HOST, peer->domainname);
peer->domainname= NULL;
}
peer->domainname = XSTRDUP(MTYPE_HOST, from_peer->domainname);
XFREE(MTYPE_HOST, from_peer->domainname);
from_peer->domainname = NULL;
}
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++)

View File

@ -627,7 +627,10 @@ bgp_capability_hostname (struct peer *peer, struct capability_header *hdr)
str[len] = '\0';
if (peer->hostname != NULL)
XFREE(MTYPE_HOST, peer->hostname);
{
XFREE(MTYPE_HOST, peer->hostname);
peer->hostname = NULL;
}
if (peer->domainname != NULL)
{