OSDN Git Service

ping: implement proper locking
authorEric Dumazet <edumazet@google.com>
Sat, 25 Mar 2017 02:36:13 +0000 (19:36 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sat, 25 Mar 2017 03:50:28 +0000 (20:50 -0700)
commit43a6684519ab0a6c52024b5e25322476cabad893
tree5dd5811104b27efe5ac19bb1aabea5e137fbb276
parent13a8cd191a2b470cfd435b3b57dbd21aa65ff78c
ping: implement proper locking

We got a report of yet another bug in ping

http://www.openwall.com/lists/oss-security/2017/03/24/6

->disconnect() is not called with socket lock held.

Fix this by acquiring ping rwlock earlier.

Thanks to Daniel, Alexander and Andrey for letting us know this problem.

Fixes: c319b4d76b9e ("net: ipv4: add IPPROTO_ICMP socket kind")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: Daniel Jiang <danieljiang0415@gmail.com>
Reported-by: Solar Designer <solar@openwall.com>
Reported-by: Andrey Konovalov <andreyknvl@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/ping.c