[arch-commits] Commit in linux/trunk (3 files)

Jan Steffens heftig at archlinux.org
Sun Feb 19 14:13:27 UTC 2017


    Date: Sunday, February 19, 2017 @ 14:13:26
  Author: heftig
Revision: 289254

4.9.11-1

Added:
  linux/trunk/0001-dccp-fix-freeing-skb-too-early-for-IPV6_RECVPKTINFO.patch
Modified:
  linux/trunk/PKGBUILD
Deleted:
  linux/trunk/0001-x86-fpu-Fix-invalid-FPU-ptrace-state-after-execve.patch

----------------------------------------------------------------+
 0001-dccp-fix-freeing-skb-too-early-for-IPV6_RECVPKTINFO.patch |   47 +++++++
 0001-x86-fpu-Fix-invalid-FPU-ptrace-state-after-execve.patch   |   65 ----------
 PKGBUILD                                                       |   16 +-
 3 files changed, 54 insertions(+), 74 deletions(-)

Added: 0001-dccp-fix-freeing-skb-too-early-for-IPV6_RECVPKTINFO.patch
===================================================================
--- 0001-dccp-fix-freeing-skb-too-early-for-IPV6_RECVPKTINFO.patch	                        (rev 0)
+++ 0001-dccp-fix-freeing-skb-too-early-for-IPV6_RECVPKTINFO.patch	2017-02-19 14:13:26 UTC (rev 289254)
@@ -0,0 +1,47 @@
+From 5edabca9d4cff7f1f2b68f0bac55ef99d9798ba4 Mon Sep 17 00:00:00 2001
+From: Andrey Konovalov <andreyknvl at 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 at google.com>
+Acked-by: Eric Dumazet <edumazet at google.com>
+Signed-off-by: David S. Miller <davem at 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
+

Deleted: 0001-x86-fpu-Fix-invalid-FPU-ptrace-state-after-execve.patch
===================================================================
--- 0001-x86-fpu-Fix-invalid-FPU-ptrace-state-after-execve.patch	2017-02-19 14:10:22 UTC (rev 289253)
+++ 0001-x86-fpu-Fix-invalid-FPU-ptrace-state-after-execve.patch	2017-02-19 14:13:26 UTC (rev 289254)
@@ -1,65 +0,0 @@
-From 885bad1e5f32bbf30787ead9578f8174047e6904 Mon Sep 17 00:00:00 2001
-From: Yu-cheng Yu <yu-cheng.yu at intel.com>
-Date: Thu, 17 Nov 2016 09:11:35 -0800
-Subject: [PATCH] x86/fpu: Fix invalid FPU ptrace state after execve()
-
-commit b22cbe404a9cc3c7949e380fa1861e31934c8978 upstream.
-
-Robert O'Callahan reported that after an execve PTRACE_GETREGSET
-NT_X86_XSTATE continues to return the pre-exec register values
-until the exec'ed task modifies FPU state.
-
-The test code is at:
-
-  https://bugzilla.redhat.com/attachment.cgi?id=1164286.
-
-What is happening is fpu__clear() does not properly clear fpstate.
-Fix it by doing just that.
-
-Reported-by: Robert O'Callahan <robert at ocallahan.org>
-Signed-off-by: Yu-cheng Yu <yu-cheng.yu at intel.com>
-Cc: Andy Lutomirski <luto at kernel.org>
-Cc: Borislav Petkov <bp at suse.de>
-Cc: David Hansen <dave.hansen at linux.intel.com>
-Cc: Fenghua Yu <fenghua.yu at intel.com>
-Cc: Linus Torvalds <torvalds at linux-foundation.org>
-Cc: Peter Zijlstra <peterz at infradead.org>
-Cc: Ravi V. Shankar <ravi.v.shankar at intel.com>
-Cc: Thomas Gleixner <tglx at linutronix.de>
-Link: http://lkml.kernel.org/r/1479402695-6553-1-git-send-email-yu-cheng.yu@intel.com
-Signed-off-by: Ingo Molnar <mingo at kernel.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/kernel/fpu/core.c | 16 ++++++++--------
- 1 file changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/arch/x86/kernel/fpu/core.c b/arch/x86/kernel/fpu/core.c
-index 3fc03a09a93b1710..c289e2f4a6e5b464 100644
---- a/arch/x86/kernel/fpu/core.c
-+++ b/arch/x86/kernel/fpu/core.c
-@@ -517,14 +517,14 @@ void fpu__clear(struct fpu *fpu)
- {
- 	WARN_ON_FPU(fpu != &current->thread.fpu); /* Almost certainly an anomaly */
- 
--	if (!use_eager_fpu() || !static_cpu_has(X86_FEATURE_FPU)) {
--		/* FPU state will be reallocated lazily at the first use. */
--		fpu__drop(fpu);
--	} else {
--		if (!fpu->fpstate_active) {
--			fpu__activate_curr(fpu);
--			user_fpu_begin();
--		}
-+	fpu__drop(fpu);
-+
-+	/*
-+	 * Make sure fpstate is cleared and initialized.
-+	 */
-+	if (static_cpu_has(X86_FEATURE_FPU)) {
-+		fpu__activate_curr(fpu);
-+		user_fpu_begin();
- 		copy_init_fpstate_to_fpregs();
- 	}
- }
--- 
-2.10.2
-

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2017-02-19 14:10:22 UTC (rev 289253)
+++ PKGBUILD	2017-02-19 14:13:26 UTC (rev 289254)
@@ -5,8 +5,8 @@
 pkgbase=linux               # Build stock -ARCH kernel
 #pkgbase=linux-custom       # Build kernel with a different name
 _srcname=linux-4.9
-pkgver=4.9.9
-pkgrel=2
+pkgver=4.9.11
+pkgrel=1
 arch=('i686' 'x86_64')
 url="https://www.kernel.org/"
 license=('GPL2')
@@ -23,12 +23,12 @@
         # standard config files for mkinitcpio ramdisk
         'linux.preset'
         'change-default-console-loglevel.patch'
-        0001-x86-fpu-Fix-invalid-FPU-ptrace-state-after-execve.patch
+        '0001-dccp-fix-freeing-skb-too-early-for-IPV6_RECVPKTINFO.patch'
         )
 
 sha256sums=('029098dcffab74875e086ae970e3828456838da6e0ba22ce3f64ef764f3d7f1a'
             'SKIP'
-            'ec97e3bf8585865d409a804316b276a6b4e4939286de9757f99bfb41cf112078'
+            '23e773a670f3cac11a92c4e442405dea6d2c28fea0f914ea2ba4bea313c26541'
             'SKIP'
             'b5c2a685667a884477904c9fb337d944667b6144720ac2a67d1116f711e70768'
             'ab6c0fab5b147fab9ccef90c62b963510e92fbd068a6a33b9619537243fedca4'
@@ -35,7 +35,7 @@
             '834bd254b56ab71d73f59b3221f056c72f559553c04718e350ab2a3e2991afe0'
             'ad6344badc91ad0630caacde83f7f9b97276f80d26a20619a87952be65492c65'
             '1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99'
-            '3e955e0f1aae96bb6c1507236adc952640c9bd0a134b9995ab92106a33dc02d9')
+            '85954ac18da9dc1bec5df28e2f097d13016e39fa9631074f85b6364af340fcd9')
 validpgpkeys=(
               'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds
               '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman
@@ -49,10 +49,8 @@
   # add upstream patch
   patch -p1 -i "${srcdir}/patch-${pkgver}"
 
-  # Revert a commit that causes memory corruption in i686 chroots on our
-  # build server ("valgrind bash" immediately crashes)
-  # https://bugzilla.kernel.org/show_bug.cgi?id=190061
-  patch -Rp1 -i "${srcdir}/0001-x86-fpu-Fix-invalid-FPU-ptrace-state-after-execve.patch"
+  # https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6074
+  patch -p1 -i "${srcdir}/0001-dccp-fix-freeing-skb-too-early-for-IPV6_RECVPKTINFO.patch"
 
   # add latest fixes from stable queue, if needed
   # http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git



More information about the arch-commits mailing list