diff options
author | Eric Dumazet <edumazet@google.com> | 2012-09-05 23:34:44 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-09-07 12:56:00 -0400 |
commit | 979402b16cde048ced4839e21cc49e0779352b80 (patch) | |
tree | e2cb35c6029a59ba46e24fe933404b0f442ecb73 /net/ipv4/udp.c | |
parent | 521130d11fd37b328543477df5522704a0e7cf2c (diff) | |
download | op-kernel-dev-979402b16cde048ced4839e21cc49e0779352b80.zip op-kernel-dev-979402b16cde048ced4839e21cc49e0779352b80.tar.gz |
udp: increment UDP_MIB_INERRORS if copy failed
In UDP recvmsg(), we miss an increase of UDP_MIB_INERRORS if the copy
of skb to userspace failed for whatever reason.
Reported-by: Shawn Bohrer <sbohrer@rgmadvisors.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/udp.c')
-rw-r--r-- | net/ipv4/udp.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c index 6f6d1ac..2814f66 100644 --- a/net/ipv4/udp.c +++ b/net/ipv4/udp.c @@ -1226,6 +1226,11 @@ try_again: if (unlikely(err)) { trace_kfree_skb(skb, udp_recvmsg); + if (!peeked) { + atomic_inc(&sk->sk_drops); + UDP_INC_STATS_USER(sock_net(sk), + UDP_MIB_INERRORS, is_udplite); + } goto out_free; } |