diff --git a/sys/netinet/ip_output.c b/sys/netinet/ip_output.c index 4a93d1c05b6..7533e099c00 100644 --- a/sys/netinet/ip_output.c +++ b/sys/netinet/ip_output.c @@ -1083,8 +1083,8 @@ in_delayed_cksum_o(struct mbuf *m, uint16_t iph_offset) if (csum == 0) csum = 0xffff; } else { - cklen = ntohs(ip->ip_len); - csum = in_cksum_skip(m, cklen, offset); + cklen = ntohs(ip->ip_len) - (ip->ip_hl << 2); + csum = in_cksum_skip(m, cklen + offset, offset); } offset += m->m_pkthdr.csum_data; /* checksum offset */