diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -6461,8 +6461,6 @@ if (!V_pf_status.running) return (PF_PASS); - memset(&pd, 0, sizeof(pd)); - kif = (struct pfi_kkif *)ifp->if_pf_kif; if (kif == NULL) { @@ -6476,6 +6474,7 @@ if (m->m_flags & M_SKIP_FIREWALL) return (PF_PASS); + memset(&pd, 0, sizeof(pd)); pd.pf_mtag = pf_find_mtag(m); if (ip_dn_io_ptr != NULL && pd.pf_mtag != NULL && @@ -6962,9 +6961,6 @@ if (!V_pf_status.running) return (PF_PASS); - memset(&pd, 0, sizeof(pd)); - pd.pf_mtag = pf_find_mtag(m); - kif = (struct pfi_kkif *)ifp->if_pf_kif; if (kif == NULL) { DPFPRINTF(PF_DEBUG_URGENT, @@ -6977,6 +6973,9 @@ if (m->m_flags & M_SKIP_FIREWALL) return (PF_PASS); + memset(&pd, 0, sizeof(pd)); + pd.pf_mtag = pf_find_mtag(m); + if (ip_dn_io_ptr != NULL && pd.pf_mtag != NULL && pd.pf_mtag->flags & PF_TAG_DUMMYNET) { pd.pf_mtag->flags &= ~PF_TAG_DUMMYNET;