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