summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Gortmaker <paul.gortmaker@windriver.com>2017-06-02 11:23:08 -0400
committerPaul Gortmaker <paul.gortmaker@windriver.com>2017-06-02 11:23:08 -0400
commite65f0246f0d1e4a300804fd0b003dcaa3ef4edeb (patch)
tree380fd50b6d264c35702cd6b3792e0cfa77932a25
parenta1810dce314351aa6cc20ba5456b6503333a9fba (diff)
downloadlongterm-queue-4.8-e65f0246f0d1e4a300804fd0b003dcaa3ef4edeb.tar.gz
net: sock.c context refresh
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r--queue/socket-bpf-fix-sk_filter-use-after-free-in-sk_clone_.patch12
1 files changed, 6 insertions, 6 deletions
diff --git a/queue/socket-bpf-fix-sk_filter-use-after-free-in-sk_clone_.patch b/queue/socket-bpf-fix-sk_filter-use-after-free-in-sk_clone_.patch
index 5b685ff..e2e7e2b 100644
--- a/queue/socket-bpf-fix-sk_filter-use-after-free-in-sk_clone_.patch
+++ b/queue/socket-bpf-fix-sk_filter-use-after-free-in-sk_clone_.patch
@@ -1,4 +1,4 @@
-From a97e50cc4cb67e1e7bff56f6b41cda62ca832336 Mon Sep 17 00:00:00 2001
+From 409af9f9b0ce2ad89144e0a81782a1d8e1374c68 Mon Sep 17 00:00:00 2001
From: Daniel Borkmann <daniel@iogearbox.net>
Date: Wed, 22 Mar 2017 13:08:08 +0100
Subject: [PATCH] socket, bpf: fix sk_filter use after free in sk_clone_lock
@@ -42,10 +42,10 @@ Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
diff --git a/net/core/sock.c b/net/core/sock.c
-index acb0d4137499..2c4f574168fb 100644
+index 0cb67c14e2ba..e00db7983093 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
-@@ -1544,6 +1544,12 @@ struct sock *sk_clone_lock(const struct sock *sk, const gfp_t priority)
+@@ -1558,6 +1558,12 @@ struct sock *sk_clone_lock(const struct sock *sk, const gfp_t priority)
is_charged = sk_filter_charge(newsk, filter);
if (unlikely(!is_charged || xfrm_sk_clone_policy(newsk, sk))) {
@@ -55,9 +55,9 @@ index acb0d4137499..2c4f574168fb 100644
+ */
+ if (!is_charged)
+ RCU_INIT_POINTER(newsk->sk_filter, NULL);
- sk_free_unlock_clone(newsk);
- newsk = NULL;
- goto out;
+ /* It is still raw copy of parent, so invalidate
+ * destructor and make plain sk_free() */
+ newsk->sk_destruct = NULL;
--
2.12.0