Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Jun 2016 16:34:55 +0000 (UTC)
From:      "Bjoern A. Zeeb" <bz@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r302142 - projects/vnet/sys/netpfil/pf
Message-ID:  <201606231634.u5NGYtdh037609@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bz
Date: Thu Jun 23 16:34:55 2016
New Revision: 302142
URL: https://svnweb.freebsd.org/changeset/base/302142

Log:
  DO not attach before pf is attached as we borrow locks from there;
  do not detach before pf is detached as otherwise we might still be called
  for VNETs and thus reference freed memory.
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  projects/vnet/sys/netpfil/pf/if_pflog.c

Modified: projects/vnet/sys/netpfil/pf/if_pflog.c
==============================================================================
--- projects/vnet/sys/netpfil/pf/if_pflog.c	Thu Jun 23 15:02:57 2016	(r302141)
+++ projects/vnet/sys/netpfil/pf/if_pflog.c	Thu Jun 23 16:34:55 2016	(r302142)
@@ -268,7 +268,7 @@ vnet_pflog_init(const void *unused __unu
 
 	pflogattach(1);
 }
-VNET_SYSINIT(vnet_pflog_init, SI_SUB_PSEUDO, SI_ORDER_ANY,
+VNET_SYSINIT(vnet_pflog_init, SI_SUB_PROTO_FIREWALL, SI_ORDER_ANY,
     vnet_pflog_init, NULL);
 
 static void
@@ -277,6 +277,10 @@ vnet_pflog_uninit(const void *unused __u
 
 	if_clone_detach(V_pflog_cloner);
 }
+/*
+ * Detach after pf is gone; otherwise we might touch pflog memory
+ * from within pf after freeing pflog.
+ */
 VNET_SYSUNINIT(vnet_pflog_uninit, SI_SUB_INIT_IF, SI_ORDER_SECOND,
     vnet_pflog_uninit, NULL);
 
@@ -308,6 +312,7 @@ static moduledata_t pflog_mod = { pflogn
 
 #define PFLOG_MODVER 1
 
-DECLARE_MODULE(pflog, pflog_mod, SI_SUB_PSEUDO, SI_ORDER_ANY);
+/* Do not run before pf is initialized as we depend on its locks. */
+DECLARE_MODULE(pflog, pflog_mod, SI_SUB_PROTO_FIREWALL, SI_ORDER_ANY);
 MODULE_VERSION(pflog, PFLOG_MODVER);
 MODULE_DEPEND(pflog, pf, PF_MODVER, PF_MODVER, PF_MODVER);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201606231634.u5NGYtdh037609>