Patch "ping: implement proper locking" has been added to the 4.10-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
ping: implement proper locking
to the 4.10-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
ping-implement-proper-locking.patch
and it can be found in the queue-4.10 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
43a6684519ab0a6c52024b5e25322476cabad893Mon Sep 17 00:00:00 2001
From: Eric Dumazet <[email protected]>
Date: Fri, 24 Mar 2017 19:36:13 -0700
Subject: ping: implement proper locking
From: Eric Dumazet <[email protected]>
commit 43a6684519ab0a6c52024b5e25322476cabad893 upstream.
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.
--- net/ipv4/ping.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
net/ipv4/ping.c +3 -2
@@ -156,17 +156,18 @@ int ping_hash(struct sock *sk)void ping_unhash (struct sock *sk) {struct inet_sock *isk =inet_sk (sk); +pr_debug ("ping_unhash(isk=%p,isk->num=%u)\n" , isk, isk->inet_num); +write_lock_bh (&ping_table.lock);if (sk_hashed (sk)) { -write_lock_bh (&ping_table.lock);hlist_nulls_del (&sk->sk_nulls_node);sk_nulls_node_init (&sk->sk_nulls_node);sock_put (sk); isk->inet_num =0 ; isk->inet_sport =0 ;sock_prot_inuse_add (sock_net (sk), sk->sk_prot,-1 ); -write_unlock_bh (&ping_table.lock); } +write_unlock_bh (&ping_table.lock); }EXPORT_SYMBOL_GPL (ping_unhash);
Patches currently in stable-queue which might be from [email protected] are
queue-4.10/ping-implement-proper-locking.patch