summaryrefslogtreecommitdiffstats
path: root/sys/dev/msk
diff options
context:
space:
mode:
authoryongari <yongari@FreeBSD.org>2009-01-14 04:47:04 +0000
committeryongari <yongari@FreeBSD.org>2009-01-14 04:47:04 +0000
commit3df80369887a9c1948ee7b1111de53a76187c513 (patch)
treec84091b7057b4d4872b243fd793efdfe3402f8f9 /sys/dev/msk
parent2c6d6348671f327037a23a03bdbc85adea2b83c4 (diff)
downloadFreeBSD-src-3df80369887a9c1948ee7b1111de53a76187c513.zip
FreeBSD-src-3df80369887a9c1948ee7b1111de53a76187c513.tar.gz
Correct frame length argument of in_cksum_skip. While I'm here
remove intermediate variable csum. Reported by: Kim Culhan < w8hdkim <> gmail DOT com > Tested by: Kim Culhan < w8hdkim <> gmail DOT com >
Diffstat (limited to 'sys/dev/msk')
-rw-r--r--sys/dev/msk/if_msk.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/sys/dev/msk/if_msk.c b/sys/dev/msk/if_msk.c
index 2b84cad..7338871 100644
--- a/sys/dev/msk/if_msk.c
+++ b/sys/dev/msk/if_msk.c
@@ -2608,17 +2608,14 @@ msk_encap(struct msk_if_softc *sc_if, struct mbuf **m_head)
*/
if (m->m_pkthdr.len < MSK_MIN_FRAMELEN &&
(m->m_pkthdr.csum_flags & CSUM_TCP) != 0) {
- uint16_t csum;
-
m = m_pullup(m, offset + sizeof(struct tcphdr));
if (m == NULL) {
*m_head = NULL;
return (ENOBUFS);
}
- csum = in_cksum_skip(m, ntohs(ip->ip_len) + offset -
- (ip->ip_hl << 2), offset);
*(uint16_t *)(m->m_data + offset +
- m->m_pkthdr.csum_data) = csum;
+ m->m_pkthdr.csum_data) = in_cksum_skip(m,
+ m->m_pkthdr.len, offset);
m->m_pkthdr.csum_flags &= ~CSUM_TCP;
}
if ((m->m_pkthdr.csum_flags & CSUM_TSO) != 0) {
OpenPOWER on IntegriCloud