Hello,
I've spotted this glitch while hunting down use after-free
in 'veb' packet path. I believe the issue is rather hypothetical,
there is no evidence the deemed memory leak ever occurred.
Anyway I believe the if_vinput() should always consume packet
by either passing it further when IFXP_MONITOR flag is set
or just releasing it.
thanks and
regards
sashan
--------8<---------------8<---------------8<------------------8<--------
diff --git a/sys/net/if.c b/sys/net/if.c
index f354c9d8a6c..db181586123 100644
--- a/sys/net/if.c
+++ b/sys/net/if.c
@@ -869,6 +869,8 @@ if_vinput(struct ifnet *ifp, struct mbuf *m)
if (__predict_true(!ISSET(ifp->if_xflags, IFXF_MONITOR)))
(*ifp->if_input)(ifp, m);
+ else
+ m_freem(m);
}
void