summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoreri <eri@FreeBSD.org>2011-07-04 17:43:04 +0000
committereri <eri@FreeBSD.org>2011-07-04 17:43:04 +0000
commitc5ab57bbd450f270e9b9f990017097cd03e57f89 (patch)
tree38b4940194b76a6626145648769cda0d8756b65b
parent8ea91bf8fbda357e3634c88c46ea8cd91ec580a7 (diff)
downloadFreeBSD-src-c5ab57bbd450f270e9b9f990017097cd03e57f89.zip
FreeBSD-src-c5ab57bbd450f270e9b9f990017097cd03e57f89.tar.gz
pf(4) tags now store the state key but tcp_respond tries to reuse a mbuf as an optimization.
This makes pf find the wrong state and cause errors reported with state mismatches. Clear the cached state link on the pf(4) tag to avoid the state mismatches. Approved by: bz
-rw-r--r--sys/netinet/tcp_subr.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c
index 6ed58911..043cd87 100644
--- a/sys/netinet/tcp_subr.c
+++ b/sys/netinet/tcp_subr.c
@@ -541,6 +541,7 @@ tcp_respond(struct tcpcb *tp, void *ipgen, struct tcphdr *th, struct mbuf *m,
m_freem(m->m_next);
m->m_next = NULL;
m->m_data = (caddr_t)ipgen;
+ m_addr_changed(m);
/* m_len is set later */
tlen = 0;
#define xchg(a,b,type) { type t; t=a; a=b; b=t; }
OpenPOWER on IntegriCloud