diff options
author | Gleb Smirnoff <glebius@FreeBSD.org> | 2019-09-13 22:36:04 +0000 |
---|---|---|
committer | Gleb Smirnoff <glebius@FreeBSD.org> | 2019-09-13 22:36:04 +0000 |
commit | f8b45306c6c74938e248f9fbfc55499d2126a82f (patch) | |
tree | e544075d9a98dbf270150fcfb752cdf413efc23e /sys/netpfil | |
parent | 7b01d357a29d6aa0dcafb04a9a370332e33eaae1 (diff) | |
download | src-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.c | 5 |
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)) { \ |