DragonFlyBSD Kernel Audit
DF-0433 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/net/bpf.c b/sys/net/bpf.c
--- a/sys/net/bpf.c
+++ b/sys/net/bpf.c
@@ -1348,14 +1348,16 @@
 bpf_mtap_hdr(struct bpf_if *arg, caddr_t data, u_int dlen, struct mbuf *m,
     u_int direction)
 {
-	struct m_hdr mh;
+	struct mbuf mb;
 
-	mh.mh_flags = 0;
-	mh.mh_next = m;
-	mh.mh_len = dlen;
-	mh.mh_data = data;
+	bzero(&mb, sizeof(mb));
+	mb.m_next = m;
+	mb.m_len = dlen;
+	mb.m_data = data;
+	if (m != NULL)
+		mb.m_pkthdr.rcvif = m->m_pkthdr.rcvif;
 
-	bpf_mtap(arg, (struct mbuf *) &mh);
+	bpf_mtap(arg, &mb);
 }
 
 void