net/pcap: fix memory leak in jumbo frames

If rte_pktmbuf_alloc() fails on any segment that is not the initial
segment, previously allocated mbufs are not freed.

Fixes: 6db141c91e ("pcap: support jumbo frames")

Signed-off-by: Dror Birkman <dror.birkman@lightcyber.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
This commit is contained in:
Dror Birkman 2016-09-20 15:08:56 +03:00 committed by Bruce Richardson
parent 6579c27c11
commit 19f8167c68

View File

@ -222,8 +222,10 @@ eth_pcap_rx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
if (unlikely(eth_pcap_rx_jumbo(pcap_q->mb_pool,
mbuf,
packet,
header.caplen) == -1))
header.caplen) == -1)) {
rte_pktmbuf_free(mbuf);
break;
}
}
mbuf->pkt_len = (uint16_t)header.caplen;