Convert UDP length to host byte order
When getting the number of bytes to checksum make sure to convert the UDP length to host byte order when the entire header is not in the first mbuf. Reviewed by: jtl, tuexen, ae Approved by: re (gjb), jtl (mentor) Differential Revision: https://reviews.freebsd.org/D17357
This commit is contained in:
parent
19fa5a5066
commit
b6e870116f
@ -932,10 +932,11 @@ in_delayed_cksum(struct mbuf *m)
|
||||
|
||||
if (m->m_pkthdr.csum_flags & CSUM_UDP) {
|
||||
/* if udp header is not in the first mbuf copy udplen */
|
||||
if (offset + sizeof(struct udphdr) > m->m_len)
|
||||
if (offset + sizeof(struct udphdr) > m->m_len) {
|
||||
m_copydata(m, offset + offsetof(struct udphdr,
|
||||
uh_ulen), sizeof(cklen), (caddr_t)&cklen);
|
||||
else {
|
||||
cklen = ntohs(cklen);
|
||||
} else {
|
||||
uh = (struct udphdr *)mtodo(m, offset);
|
||||
cklen = ntohs(uh->uh_ulen);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user