summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorAlexander Bluhm <bluhm@cvs.openbsd.org>2014-07-13 16:58:44 +0000
committerAlexander Bluhm <bluhm@cvs.openbsd.org>2014-07-13 16:58:44 +0000
commit89fb2bd3f51e181f8e28a2efe3aa3551e121c44c (patch)
treefb83516012ff518699ab5441abc6de83250459a9 /sys
parent59a651f50eb02eee839e606a68c4f78bc041f52c (diff)
Put back a m_copyback() that got lost in rev 1.837 of pf.c. This
fixes the rewrite of an IPv6 header of an ICMP6 packet in the payload of an ICMP6 error packet. Path MTU discovery with ping6 over pf nat or rdr works again. Found by src/regress/sys/net/pf_fragment make run-regress-fragping6 OK henning@
Diffstat (limited to 'sys')
-rw-r--r--sys/net/pf.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/net/pf.c b/sys/net/pf.c
index 162f968dcfa..247d6c63ddd 100644
--- a/sys/net/pf.c
+++ b/sys/net/pf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pf.c,v 1.881 2014/07/10 03:17:59 lteo Exp $ */
+/* $OpenBSD: pf.c,v 1.882 2014/07/13 16:58:43 bluhm Exp $ */
/*
* Copyright (c) 2001 Daniel Hartmeier
@@ -5249,7 +5249,9 @@ pf_test_state_icmp(struct pf_pdesc *pd, struct pf_state **state,
m_copyback(pd->m, pd->off,
sizeof(struct icmp6_hdr), pd->hdr.icmp6,
M_NOWAIT);
- m_copyback(pd->m, pd2.off,
+ m_copyback(pd2.m, ipoff2, sizeof(h2_6), &h2_6,
+ M_NOWAIT);
+ m_copyback(pd2.m, pd2.off,
sizeof(struct icmp6_hdr), &iih, M_NOWAIT);
copyback = 1;
}