mirror of
https://github.com/Divested-Mobile/DivestOS-Build.git
synced 2024-10-01 01:35:54 -04:00
30 lines
980 B
Diff
30 lines
980 B
Diff
|
From a134f083e79fb4c3d0a925691e732c56911b4326 Mon Sep 17 00:00:00 2001
|
||
|
From: "David S. Miller" <davem@davemloft.net>
|
||
|
Date: Fri, 1 May 2015 22:02:47 -0400
|
||
|
Subject: [PATCH] ipv4: Missing sk_nulls_node_init() in ping_unhash().
|
||
|
|
||
|
If we don't do that, then the poison value is left in the ->pprev
|
||
|
backlink.
|
||
|
|
||
|
This can cause crashes if we do a disconnect, followed by a connect().
|
||
|
|
||
|
Tested-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||
|
Reported-by: Wen Xu <hotdog3645@gmail.com>
|
||
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||
|
---
|
||
|
net/ipv4/ping.c | 1 +
|
||
|
1 file changed, 1 insertion(+)
|
||
|
|
||
|
diff --git a/net/ipv4/ping.c b/net/ipv4/ping.c
|
||
|
index a93f260cf24ca..05ff44b758dfe 100644
|
||
|
--- a/net/ipv4/ping.c
|
||
|
+++ b/net/ipv4/ping.c
|
||
|
@@ -158,6 +158,7 @@ void ping_unhash(struct sock *sk)
|
||
|
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;
|