summaryrefslogtreecommitdiffstats
path: root/sys/netinet
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 /sys/netinet
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
Diffstat (limited to 'sys/netinet')
-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