Page MenuHomeFreeBSD

D46628.id143247.diff
No OneTemporary

D46628.id143247.diff

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
@@ -8415,6 +8415,12 @@
if (m->m_flags & M_SKIP_FIREWALL)
return (PF_PASS);
+ if (__predict_false(! M_WRITABLE(*m0))) {
+ m = *m0 = m_unshare(*m0, M_NOWAIT);
+ if (*m0 == NULL)
+ return (PF_DROP);
+ }
+
/* Stateless! */
return (pf_test_eth_rule(dir, kif, m0));
}
@@ -8553,6 +8559,12 @@
return (PF_PASS);
}
+ if (__predict_false(! M_WRITABLE(*m0))) {
+ m = *m0 = m_unshare(*m0, M_NOWAIT);
+ if (*m0 == NULL)
+ return (PF_DROP);
+ }
+
memset(&pd, 0, sizeof(pd));
TAILQ_INIT(&pd.sctp_multihome_jobs);
if (default_actions != NULL)
@@ -9147,6 +9159,12 @@
return (PF_DROP);
}
+ if (__predict_false(! M_WRITABLE(*m0))) {
+ m = *m0 = m_unshare(*m0, M_NOWAIT);
+ if (*m0 == NULL)
+ return (PF_DROP);
+ }
+
memset(&pd, 0, sizeof(pd));
TAILQ_INIT(&pd.sctp_multihome_jobs);
if (default_actions != NULL)

File Metadata

Mime Type
text/plain
Expires
Mon, Sep 23, 5:14 PM (2 h, 32 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
11644614
Default Alt Text
D46628.id143247.diff (948 B)

Event Timeline