aboutsummaryrefslogtreecommitdiff
path: root/sys/netpfil
diff options
context:
space:
mode:
authorGleb Smirnoff <glebius@FreeBSD.org>2019-09-13 22:36:04 +0000
committerGleb Smirnoff <glebius@FreeBSD.org>2019-09-13 22:36:04 +0000
commitf8b45306c6c74938e248f9fbfc55499d2126a82f (patch)
treee544075d9a98dbf270150fcfb752cdf413efc23e /sys/netpfil
parent7b01d357a29d6aa0dcafb04a9a370332e33eaae1 (diff)
downloadsrc-f8b45306c6c74938e248f9fbfc55499d2126a82f.tar.gz
src-f8b45306c6c74938e248f9fbfc55499d2126a82f.zip
Drivers may pass runt packets to filter. This is okay.
Reviewed by: gallatin
Notes
Notes: svn path=/head/; revision=352311
Diffstat (limited to 'sys/netpfil')
-rw-r--r--sys/netpfil/ipfw/ip_fw2.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/netpfil/ipfw/ip_fw2.c b/sys/netpfil/ipfw/ip_fw2.c
index 6dfe58911955..f55329f54ce4 100644
--- a/sys/netpfil/ipfw/ip_fw2.c
+++ b/sys/netpfil/ipfw/ip_fw2.c
@@ -1448,7 +1448,10 @@ ipfw_chk(struct ip_fw_args *args)
do { \
int x = (_len) + T + EHLEN; \
if (mem) { \
- MPASS(pktlen >= x); \
+ if (__predict_false(pktlen < x)) { \
+ unlock; \
+ goto pullup_failed; \
+ } \
p = (char *)args->mem + (_len) + EHLEN; \
} else { \
if (__predict_false((m)->m_len < x)) { \