summaryrefslogtreecommitdiffstats
path: root/sys/netinet6
diff options
context:
space:
mode:
authortuexen <tuexen@FreeBSD.org>2014-10-06 17:04:26 +0000
committertuexen <tuexen@FreeBSD.org>2014-10-06 17:04:26 +0000
commit88124f9e02fc7803f94dbf3ded02e455d255c479 (patch)
treec50d4bf2d873e74385fde051ea5a81cfe937e4d8 /sys/netinet6
parentce3a76b52fb6ecf2961794008957eb6fb1d7c450 (diff)
downloadFreeBSD-src-88124f9e02fc7803f94dbf3ded02e455d255c479.zip
FreeBSD-src-88124f9e02fc7803f94dbf3ded02e455d255c479.tar.gz
MFC r272347:
The default for UDPLITE_RECV_CSCOV is zero. RFC 3828 recommend that this means full checksum coverage for received packets. If an application is willing to accept packets with partial coverage, it is expected to use the socket option and provide the minimum coverage it accepts.
Diffstat (limited to 'sys/netinet6')
-rw-r--r--sys/netinet6/udp6_usrreq.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/netinet6/udp6_usrreq.c b/sys/netinet6/udp6_usrreq.c
index 0142804..a2bcbc7 100644
--- a/sys/netinet6/udp6_usrreq.c
+++ b/sys/netinet6/udp6_usrreq.c
@@ -259,7 +259,7 @@ udp6_input(struct mbuf **mp, int *offp, int proto)
if (uh_sum != 0) {
UDPSTAT_INC(udps_badsum);
- goto badunlocked;
+ /*goto badunlocked;*/
}
/*
@@ -479,7 +479,7 @@ udp6_input(struct mbuf **mp, int *offp, int proto)
INP_RLOCK_ASSERT(inp);
up = intoudpcb(inp);
if (cscov_partial) {
- if (up->u_rxcslen > ulen) {
+ if (up->u_rxcslen == 0 || up->u_rxcslen > ulen) {
INP_RUNLOCK(inp);
m_freem(m);
return (IPPROTO_DONE);
OpenPOWER on IntegriCloud