From 04993890dcbe38b598b9d898f459cf573b51993a Mon Sep 17 00:00:00 2001 From: Stephen Hurd Date: Fri, 8 Dec 2017 19:50:06 +0000 Subject: [PATCH] Free mbuf chain when m_dup fails Fix memory leak where mbuf chain wasn't free()d if iflib_ether_pad() has a failure in m_dup(). Reported by: "Ryan Stone" Sponsored by: Limelight Networks --- sys/net/iflib.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/net/iflib.c b/sys/net/iflib.c index 6035ce49a018..1648dc63dc22 100644 --- a/sys/net/iflib.c +++ b/sys/net/iflib.c @@ -3125,6 +3125,7 @@ iflib_ether_pad(device_t dev, struct mbuf **m_head, uint16_t min_frame_size) if (!M_WRITABLE(*m_head)) { new_head = m_dup(*m_head, M_NOWAIT); if (new_head == NULL) { + m_freem(*m_head); device_printf(dev, "cannot pad short frame, m_dup() failed"); return ENOMEM; }