]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/4.8.10/net-clear-sk_err_soft-in-sk_clone_lock.patch
5.1-stable patches
[thirdparty/kernel/stable-queue.git] / releases / 4.8.10 / net-clear-sk_err_soft-in-sk_clone_lock.patch
CommitLineData
5c38cac1
GKH
1From foo@baz Fri Nov 18 11:35:46 CET 2016
2From: Eric Dumazet <edumazet@google.com>
3Date: Fri, 28 Oct 2016 13:40:24 -0700
4Subject: net: clear sk_err_soft in sk_clone_lock()
5
6From: Eric Dumazet <edumazet@google.com>
7
8
9[ Upstream commit e551c32d57c88923f99f8f010e89ca7ed0735e83 ]
10
11At accept() time, it is possible the parent has a non zero
12sk_err_soft, leftover from a prior error.
13
14Make sure we do not leave this value in the child, as it
15makes future getsockopt(SO_ERROR) calls quite unreliable.
16
17Signed-off-by: Eric Dumazet <edumazet@google.com>
18Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
19Signed-off-by: David S. Miller <davem@davemloft.net>
20Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
21---
22 net/core/sock.c | 1 +
23 1 file changed, 1 insertion(+)
24
25--- a/net/core/sock.c
26+++ b/net/core/sock.c
27@@ -1563,6 +1563,7 @@ struct sock *sk_clone_lock(const struct
28 RCU_INIT_POINTER(newsk->sk_reuseport_cb, NULL);
29
30 newsk->sk_err = 0;
31+ newsk->sk_err_soft = 0;
32 newsk->sk_priority = 0;
33 newsk->sk_incoming_cpu = raw_smp_processor_id();
34 atomic64_set(&newsk->sk_cookie, 0);