svn commit: r324996 - head/sys/netinet6
Kristof Provost
kp at FreeBSD.org
Wed Oct 25 19:21:50 UTC 2017
Author: kp
Date: Wed Oct 25 19:21:48 2017
New Revision: 324996
URL: https://svnweb.freebsd.org/changeset/base/324996
Log:
Evaluate packet size after the firewall had its chance in the ip6 fast path
Defer the packet size check until after the firewall has had a look at it. This
means that the firewall now has the opportunity to (re-)fragment an oversized
packet.
This mirrors what the slow path does.
Reviewed by: ae
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D12779
Modified:
head/sys/netinet6/ip6_fastfwd.c
Modified: head/sys/netinet6/ip6_fastfwd.c
==============================================================================
--- head/sys/netinet6/ip6_fastfwd.c Wed Oct 25 18:55:04 2017 (r324995)
+++ head/sys/netinet6/ip6_fastfwd.c Wed Oct 25 19:21:48 2017 (r324996)
@@ -194,7 +194,17 @@ passin:
in6_ifstat_inc(rcvif, ifs6_in_noroute);
goto dropin;
}
+
/*
+ * Outgoing packet firewall processing.
+ */
+ if (!PFIL_HOOKED(&V_inet6_pfil_hook))
+ goto passout;
+ if (pfil_run_hooks(&V_inet6_pfil_hook, &m, nh.nh_ifp, PFIL_OUT,
+ NULL) != 0 || m == NULL)
+ goto dropout;
+
+ /*
* We used slow path processing for packets with scoped addresses.
* So, scope checks aren't needed here.
*/
@@ -205,14 +215,6 @@ passin:
goto dropout;
}
- /*
- * Outgoing packet firewall processing.
- */
- if (!PFIL_HOOKED(&V_inet6_pfil_hook))
- goto passout;
- if (pfil_run_hooks(&V_inet6_pfil_hook, &m, nh.nh_ifp, PFIL_OUT,
- NULL) != 0 || m == NULL)
- goto dropout;
/*
* If packet filter sets the M_FASTFWD_OURS flag, this means
* that new destination or next hop is our local address.
More information about the svn-src-head
mailing list