Date: Wed, 19 Feb 2025 10:41:37 GMT From: Kristof Provost <kp@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: b34f497b3e6e - main - pf: simplify pf_check_proto_cksum() Message-ID: <202502191041.51JAfbCJ035294@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=b34f497b3e6eff1c7b12f5700d897743073dfcff commit b34f497b3e6eff1c7b12f5700d897743073dfcff Author: Kristof Provost <kp@FreeBSD.org> AuthorDate: 2025-02-11 13:24:56 +0000 Commit: Kristof Provost <kp@FreeBSD.org> CommitDate: 2025-02-19 10:41:09 +0000 pf: simplify pf_check_proto_cksum() Simplify and shorten the way ICMP checksums are verified in pf_check_proto_cksum() by letting it use the same in4_cksum() call that is used for TCP and UDP checksums. ok henning@ naddy@ Obtained from: OpenBSD, lteo <lteo@openbsd.org>, 3c23016fb7 Sponsored by: Rubicon Communications, LLC ("Netgate") --- sys/netpfil/pf/pf.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index ea5687407881..da741364d372 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -9276,19 +9276,9 @@ pf_check_proto_cksum(struct mbuf *m, int off, int len, u_int8_t p, sa_family_t a if (!hw_assist) { switch (af) { case AF_INET: - if (p == IPPROTO_ICMP) { - if (m->m_len < off) - return (1); - m->m_data += off; - m->m_len -= off; - sum = in_cksum(m, len); - m->m_data -= off; - m->m_len += off; - } else { - if (m->m_len < sizeof(struct ip)) - return (1); - sum = in4_cksum(m, p, off, len); - } + if (m->m_len < sizeof(struct ip)) + return (1); + sum = in4_cksum(m, (p == IPPROTO_ICMP ? 0 : p), off, len); break; #ifdef INET6 case AF_INET6:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202502191041.51JAfbCJ035294>