summaryrefslogtreecommitdiff
path: root/kernels/linux-libre-knock/0001-dccp-fix-freeing-skb-too-early-for-IPV6_RECVPKTINFO.patch
diff options
context:
space:
mode:
authorAndré Fabian Silva Delgado <emulatorman@parabola.nu>2017-03-14 22:48:58 -0300
committerAndré Fabian Silva Delgado <emulatorman@parabola.nu>2017-03-14 22:48:58 -0300
commit4be6def67737299ff00f49b0eacf50fbcda6e378 (patch)
tree37703d2cdea33a94c123aa650429e5d8180a46ec /kernels/linux-libre-knock/0001-dccp-fix-freeing-skb-too-early-for-IPV6_RECVPKTINFO.patch
parentcbe41ac7d8cfb0b4fb8e96d27e063fab2ae6536d (diff)
downloadabslibre-4be6def67737299ff00f49b0eacf50fbcda6e378.tar.gz
abslibre-4be6def67737299ff00f49b0eacf50fbcda6e378.tar.bz2
abslibre-4be6def67737299ff00f49b0eacf50fbcda6e378.zip
linux-libre-knock-4.10.2_gnu-1: updating version
Diffstat (limited to 'kernels/linux-libre-knock/0001-dccp-fix-freeing-skb-too-early-for-IPV6_RECVPKTINFO.patch')
-rw-r--r--kernels/linux-libre-knock/0001-dccp-fix-freeing-skb-too-early-for-IPV6_RECVPKTINFO.patch47
1 files changed, 0 insertions, 47 deletions
diff --git a/kernels/linux-libre-knock/0001-dccp-fix-freeing-skb-too-early-for-IPV6_RECVPKTINFO.patch b/kernels/linux-libre-knock/0001-dccp-fix-freeing-skb-too-early-for-IPV6_RECVPKTINFO.patch
deleted file mode 100644
index 9adaf0b30..000000000
--- a/kernels/linux-libre-knock/0001-dccp-fix-freeing-skb-too-early-for-IPV6_RECVPKTINFO.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 5edabca9d4cff7f1f2b68f0bac55ef99d9798ba4 Mon Sep 17 00:00:00 2001
-From: Andrey Konovalov <andreyknvl@google.com>
-Date: Thu, 16 Feb 2017 17:22:46 +0100
-Subject: [PATCH] dccp: fix freeing skb too early for IPV6_RECVPKTINFO
-
-In the current DCCP implementation an skb for a DCCP_PKT_REQUEST packet
-is forcibly freed via __kfree_skb in dccp_rcv_state_process if
-dccp_v6_conn_request successfully returns.
-
-However, if IPV6_RECVPKTINFO is set on a socket, the address of the skb
-is saved to ireq->pktopts and the ref count for skb is incremented in
-dccp_v6_conn_request, so skb is still in use. Nevertheless, it gets freed
-in dccp_rcv_state_process.
-
-Fix by calling consume_skb instead of doing goto discard and therefore
-calling __kfree_skb.
-
-Similar fixes for TCP:
-
-fb7e2399ec17f1004c0e0ccfd17439f8759ede01 [TCP]: skb is unexpectedly freed.
-0aea76d35c9651d55bbaf746e7914e5f9ae5a25d tcp: SYN packets are now
-simply consumed
-
-Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
-Acked-by: Eric Dumazet <edumazet@google.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
- net/dccp/input.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/net/dccp/input.c b/net/dccp/input.c
-index ba347184bda9b3fe..8fedc2d497709b3d 100644
---- a/net/dccp/input.c
-+++ b/net/dccp/input.c
-@@ -606,7 +606,8 @@ int dccp_rcv_state_process(struct sock *sk, struct sk_buff *skb,
- if (inet_csk(sk)->icsk_af_ops->conn_request(sk,
- skb) < 0)
- return 1;
-- goto discard;
-+ consume_skb(skb);
-+ return 0;
- }
- if (dh->dccph_type == DCCP_PKT_RESET)
- goto discard;
---
-2.11.1
-