aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristof Provost <kp@FreeBSD.org>2024-11-12 10:51:33 +0000
committerKristof Provost <kp@FreeBSD.org>2024-12-17 10:07:15 +0000
commitf1ddd7f1dae6fa3cab8c5044e3b4f719bf93ec97 (patch)
treed4cda471f27c422e933ffd92dbd0586ecac770c3
parent373d6dbf34a8c4c506ccaa6ac3f7cc42493d8b48 (diff)
pf: add forgotten fixup for icmp6 id's when translating
ok henning Obtained from: OpenBSD, mikeb <mikeb@openbsd.org>, 7dde5f4db5 Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D47799
-rw-r--r--sys/netpfil/pf/pf.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c
index 4c1111c6106a..445aef881fe8 100644
--- a/sys/netpfil/pf/pf.c
+++ b/sys/netpfil/pf/pf.c
@@ -7815,6 +7815,10 @@ pf_test_state_icmp(struct pf_kstate **state, struct pf_pdesc *pd,
&pd->hdr.icmp6.icmp6_cksum,
&nk->addr[didx], 0);
+ if (nk->port[iidx] != pd->hdr.icmp6.icmp6_id)
+ pd->hdr.icmp6.icmp6_id =
+ nk->port[iidx];
+
m_copyback(pd->m, pd->off, sizeof(struct icmp6_hdr),
(caddr_t )&pd->hdr.icmp6);
break;