tcp: fix listening_get_next()
authorEric Dumazet <eric.dumazet@gmail.com>
Thu, 23 Dec 2010 17:32:46 +0000 (09:32 -0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 23 Dec 2010 17:32:46 +0000 (09:32 -0800)
commit1bde5ac49398a064c753bb490535cfad89e99a5f
tree9a26c9da2be8e1a6eedc089dd7719e14ac9b184b
parentb7e03ec9a6b9d0c0cb1e435026d46dfcd78e48ac
tcp: fix listening_get_next()

Alexey Vlasov found /proc/net/tcp could sometime loop and display
millions of sockets in LISTEN state.

In 2.6.29, when we converted TCP hash tables to RCU, we left two
sk_next() calls in listening_get_next().

We must instead use sk_nulls_next() to properly detect an end of chain.

Reported-by: Alexey Vlasov <renton@renton.name>
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp_ipv4.c