summaryrefslogtreecommitdiffstats
path: root/net/ipv6/udp.c
diff options
context:
space:
mode:
authorTom Herbert <therbert@google.com>2014-05-06 01:43:58 +0200
committerDavid S. Miller <davem@davemloft.net>2014-05-06 05:17:16 +0200
commit79e0f1c9f2c7096e93879d4158f2d34142b693dd (patch)
tree358140d06ae5270a33258740aa0b77d21469ccdc /net/ipv6/udp.c
parentMerge branch 'tipc-next' (diff)
downloadlinux-79e0f1c9f2c7096e93879d4158f2d34142b693dd.tar.xz
linux-79e0f1c9f2c7096e93879d4158f2d34142b693dd.zip
ipv6: Need to sock_put on csum error
Commit 4068579e1e098fa81d48db9ba4432ab664c58561 ("net: Implmement RFC 6936 (zero RX csums for UDP/IPv6)") introduced zero checksums being allowed for IPv6, but in the case that a socket disallows a zero checksum on RX we need to sock_put. Signed-off-by: Tom Herbert <therbert@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/udp.c')
-rw-r--r--net/ipv6/udp.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
index 4fcd9bca950e..fc2be63e32d5 100644
--- a/net/ipv6/udp.c
+++ b/net/ipv6/udp.c
@@ -884,6 +884,7 @@ int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
int ret;
if (!uh->check && !sk->sk_no_check) {
+ sock_put(sk);
udp6_csum_zero_error(skb);
goto csum_error;
}