svn commit: r353494 - head/sys/netpfil/ipfw

Gleb Smirnoff glebius at FreeBSD.org
Mon Oct 14 16:37:00 UTC 2019


Author: glebius
Date: Mon Oct 14 16:37:00 2019
New Revision: 353494
URL: https://svnweb.freebsd.org/changeset/base/353494

Log:
  ipfw(4) rule matching always happens in network epoch.

Modified:
  head/sys/netpfil/ipfw/ip_fw2.c

Modified: head/sys/netpfil/ipfw/ip_fw2.c
==============================================================================
--- head/sys/netpfil/ipfw/ip_fw2.c	Mon Oct 14 15:52:59 2019	(r353493)
+++ head/sys/netpfil/ipfw/ip_fw2.c	Mon Oct 14 16:37:00 2019	(r353494)
@@ -408,17 +408,15 @@ iface_match(struct ifnet *ifp, ipfw_insn_if *cmd, stru
 #if !defined(USERSPACE) && defined(__FreeBSD__)	/* and OSX too ? */
 		struct ifaddr *ia;
 
-		if_addr_rlock(ifp);
+		NET_EPOCH_ASSERT();
+
 		CK_STAILQ_FOREACH(ia, &ifp->if_addrhead, ifa_link) {
 			if (ia->ifa_addr->sa_family != AF_INET)
 				continue;
 			if (cmd->p.ip.s_addr == ((struct sockaddr_in *)
-			    (ia->ifa_addr))->sin_addr.s_addr) {
-				if_addr_runlock(ifp);
-				return(1);	/* match */
-			}
+			    (ia->ifa_addr))->sin_addr.s_addr)
+				return (1);	/* match */
 		}
-		if_addr_runlock(ifp);
 #endif /* __FreeBSD__ */
 	}
 	return(0);	/* no match, fail ... */


More information about the svn-src-head mailing list