summaryrefslogtreecommitdiffstats
path: root/sys/net/bpf.h
diff options
context:
space:
mode:
authorsilby <silby@FreeBSD.org>2003-10-19 22:33:41 +0000
committersilby <silby@FreeBSD.org>2003-10-19 22:33:41 +0000
commit4add8d9302f95e90df2c7b01613648b4f8c2a8a7 (patch)
tree380a9f5bd024e0fdbc9f53870898d9246166b4c0 /sys/net/bpf.h
parent9f420bf43d995bad7e87dd407faafcddbe12d343 (diff)
downloadFreeBSD-src-4add8d9302f95e90df2c7b01613648b4f8c2a8a7.zip
FreeBSD-src-4add8d9302f95e90df2c7b01613648b4f8c2a8a7.tar.gz
Add a new macro M_ASSERTVALID which ensures that the mbuf in question
is non-free. (More checks can/should be added in the future.) Use M_ASSERTVALID in BPF_MTAP so that we catch when freed mbufs are passed in, even if no bpf listeners are active. Inspired by a bug in if_dc caught by Kenjiro Cho.
Diffstat (limited to 'sys/net/bpf.h')
-rw-r--r--sys/net/bpf.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/net/bpf.h b/sys/net/bpf.h
index 6d3e800..a5942ae 100644
--- a/sys/net/bpf.h
+++ b/sys/net/bpf.h
@@ -366,6 +366,7 @@ u_int bpf_filter(const struct bpf_insn *, u_char *, u_int, u_int);
bpf_tap((_ifp)->if_bpf, (_pkt), (_pktlen)); \
} while (0)
#define BPF_MTAP(_ifp,_m) do { \
+ M_ASSERTVALID(_m); \
if ((_ifp)->if_bpf) \
bpf_mtap((_ifp)->if_bpf, (_m)); \
} while (0)
OpenPOWER on IntegriCloud