DF-0433 / fix.diff
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 |