summaryrefslogtreecommitdiffstats
path: root/sys/netpfil
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2015-07-28 09:16:54 +0000
committerglebius <glebius@FreeBSD.org>2015-07-28 09:16:54 +0000
commitc3133372cb9ed604a5acd0dd5234e8f880aa462f (patch)
treef5eecac7a4636571d7300e852566a9ab5a17b91a /sys/netpfil
parent2a5be58b24f46487ce7ca93160f803d1e551c03c (diff)
downloadFreeBSD-src-c3133372cb9ed604a5acd0dd5234e8f880aa462f.zip
FreeBSD-src-c3133372cb9ed604a5acd0dd5234e8f880aa462f.tar.gz
Merge r283061, r283063: don't dereference NULL is pf_get_mtag() fails.
PR: 200222
Diffstat (limited to 'sys/netpfil')
-rw-r--r--sys/netpfil/pf/pf.c32
1 files changed, 18 insertions, 14 deletions
diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c
index b78d80d..c782506 100644
--- a/sys/netpfil/pf/pf.c
+++ b/sys/netpfil/pf/pf.c
@@ -5912,13 +5912,14 @@ done:
((pd.pf_mtag = pf_get_mtag(m)) == NULL)) {
action = PF_DROP;
REASON_SET(&reason, PFRES_MEMORY);
+ } else {
+ if (pqid || (pd.tos & IPTOS_LOWDELAY))
+ pd.pf_mtag->qid = r->pqid;
+ else
+ pd.pf_mtag->qid = r->qid;
+ /* Add hints for ecn. */
+ pd.pf_mtag->hdr = h;
}
- if (pqid || (pd.tos & IPTOS_LOWDELAY))
- pd.pf_mtag->qid = r->pqid;
- else
- pd.pf_mtag->qid = r->qid;
- /* add hints for ecn */
- pd.pf_mtag->hdr = h;
}
#endif /* ALTQ */
@@ -5957,9 +5958,11 @@ done:
log = 1;
DPFPRINTF(PF_DEBUG_MISC,
("pf: failed to allocate tag\n"));
+ } else {
+ pd.pf_mtag->flags |=
+ PF_FASTFWD_OURS_PRESENT;
+ m->m_flags &= ~M_FASTFWD_OURS;
}
- pd.pf_mtag->flags |= PF_FASTFWD_OURS_PRESENT;
- m->m_flags &= ~M_FASTFWD_OURS;
}
ip_divert_ptr(*m0, dir == PF_IN ? DIR_IN : DIR_OUT);
*m0 = NULL;
@@ -6341,13 +6344,14 @@ done:
((pd.pf_mtag = pf_get_mtag(m)) == NULL)) {
action = PF_DROP;
REASON_SET(&reason, PFRES_MEMORY);
+ } else {
+ if (pd.tos & IPTOS_LOWDELAY)
+ pd.pf_mtag->qid = r->pqid;
+ else
+ pd.pf_mtag->qid = r->qid;
+ /* Add hints for ecn. */
+ pd.pf_mtag->hdr = h;
}
- if (pd.tos & IPTOS_LOWDELAY)
- pd.pf_mtag->qid = r->pqid;
- else
- pd.pf_mtag->qid = r->qid;
- /* add hints for ecn */
- pd.pf_mtag->hdr = h;
}
#endif /* ALTQ */
OpenPOWER on IntegriCloud