Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 5 Oct 2018 12:51:30 +0000 (UTC)
From:      Tom Jones <thj@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r339195 - head/sys/netinet
Message-ID:  <201810051251.w95CpUZW054477@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: thj
Date: Fri Oct  5 12:51:30 2018
New Revision: 339195
URL: https://svnweb.freebsd.org/changeset/base/339195

Log:
  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

Modified:
  head/sys/netinet/ip_output.c

Modified: head/sys/netinet/ip_output.c
==============================================================================
--- head/sys/netinet/ip_output.c	Fri Oct  5 12:08:32 2018	(r339194)
+++ head/sys/netinet/ip_output.c	Fri Oct  5 12:51:30 2018	(r339195)
@@ -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);
 		}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201810051251.w95CpUZW054477>