aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorDavid Malone <dwmalone@FreeBSD.org>2007-06-10 07:34:28 +0000
committerDavid Malone <dwmalone@FreeBSD.org>2007-06-10 07:34:28 +0000
commita3ff700424a791bc6d5d4cdc377f39de5777621b (patch)
treefae77ac1557c57989ccfaacc284841a5988ed4e9 /sys
parentb37842b29d867ba84784b7d475ef0e8b46c9d6dc (diff)
downloadsrc-a3ff700424a791bc6d5d4cdc377f39de5777621b.tar.gz
src-a3ff700424a791bc6d5d4cdc377f39de5777621b.zip
MFC 1.209: Don't verify UDP IPv4 checksum in-place.
Notes
Notes: svn path=/stable/4/; revision=170498
Diffstat (limited to 'sys')
-rw-r--r--sys/netinet/udp_usrreq.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/sys/netinet/udp_usrreq.c b/sys/netinet/udp_usrreq.c
index ff504502e628..7b1455db2c32 100644
--- a/sys/netinet/udp_usrreq.c
+++ b/sys/netinet/udp_usrreq.c
@@ -218,23 +218,24 @@ udp_input(m, off, proto)
* Checksum extended UDP header and data.
*/
if (uh->uh_sum) {
+ u_short uh_sum;
if (m->m_pkthdr.csum_flags & CSUM_DATA_VALID) {
if (m->m_pkthdr.csum_flags & CSUM_PSEUDO_HDR)
- uh->uh_sum = m->m_pkthdr.csum_data;
+ uh_sum = m->m_pkthdr.csum_data;
else
- uh->uh_sum = in_pseudo(ip->ip_src.s_addr,
+ uh_sum = in_pseudo(ip->ip_src.s_addr,
ip->ip_dst.s_addr, htonl((u_short)len +
m->m_pkthdr.csum_data + IPPROTO_UDP));
- uh->uh_sum ^= 0xffff;
+ uh_sum ^= 0xffff;
} else {
char b[9];
bcopy(((struct ipovly *)ip)->ih_x1, b, 9);
bzero(((struct ipovly *)ip)->ih_x1, 9);
((struct ipovly *)ip)->ih_len = uh->uh_ulen;
- uh->uh_sum = in_cksum(m, len + sizeof (struct ip));
+ uh_sum = in_cksum(m, len + sizeof (struct ip));
bcopy(b, ((struct ipovly *)ip)->ih_x1, 9);
}
- if (uh->uh_sum) {
+ if (uh_sum) {
udpstat.udps_badsum++;
m_freem(m);
return;