eigrpd: Fix leak of ep

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
Donald Sharp 2017-06-10 16:13:51 -04:00
parent 60805e322e
commit d52ecaa1de

View file

@ -160,6 +160,7 @@ eigrp_send_query (struct eigrp_interface *ei)
struct eigrp_neighbor *nbr; struct eigrp_neighbor *nbr;
struct eigrp_prefix_entry *pe; struct eigrp_prefix_entry *pe;
char has_tlv; char has_tlv;
bool ep_saved = false;
ep = eigrp_packet_new(ei->ifp->mtu); ep = eigrp_packet_new(ei->ifp->mtu);
@ -218,6 +219,7 @@ eigrp_send_query (struct eigrp_interface *ei)
{ {
/*Put packet to retransmission queue*/ /*Put packet to retransmission queue*/
eigrp_fifo_push_head(nbr->retrans_queue, ep); eigrp_fifo_push_head(nbr->retrans_queue, ep);
ep_saved = true;
if (nbr->retrans_queue->count == 1) if (nbr->retrans_queue->count == 1)
{ {
@ -225,4 +227,7 @@ eigrp_send_query (struct eigrp_interface *ei)
} }
} }
} }
if (!ep_saved)
eigrp_packet_free(ep);
} }