4.9.11-1
This commit is contained in:
parent
d14b9fdc19
commit
f69bad24f4
@ -0,0 +1,47 @@
|
|||||||
|
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
|
||||||
|
|
@ -1,65 +0,0 @@
|
|||||||
From 885bad1e5f32bbf30787ead9578f8174047e6904 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Yu-cheng Yu <yu-cheng.yu@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@ocallahan.org>
|
|
||||||
Signed-off-by: Yu-cheng Yu <yu-cheng.yu@intel.com>
|
|
||||||
Cc: Andy Lutomirski <luto@kernel.org>
|
|
||||||
Cc: Borislav Petkov <bp@suse.de>
|
|
||||||
Cc: David Hansen <dave.hansen@linux.intel.com>
|
|
||||||
Cc: Fenghua Yu <fenghua.yu@intel.com>
|
|
||||||
Cc: Linus Torvalds <torvalds@linux-foundation.org>
|
|
||||||
Cc: Peter Zijlstra <peterz@infradead.org>
|
|
||||||
Cc: Ravi V. Shankar <ravi.v.shankar@intel.com>
|
|
||||||
Cc: Thomas Gleixner <tglx@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@kernel.org>
|
|
||||||
Signed-off-by: Greg Kroah-Hartman <gregkh@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 != ¤t->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
|
|
||||||
|
|
16
PKGBUILD
16
PKGBUILD
@ -5,8 +5,8 @@
|
|||||||
pkgbase=linux # Build stock -ARCH kernel
|
pkgbase=linux # Build stock -ARCH kernel
|
||||||
#pkgbase=linux-custom # Build kernel with a different name
|
#pkgbase=linux-custom # Build kernel with a different name
|
||||||
_srcname=linux-4.9
|
_srcname=linux-4.9
|
||||||
pkgver=4.9.9
|
pkgver=4.9.11
|
||||||
pkgrel=2
|
pkgrel=1
|
||||||
arch=('i686' 'x86_64')
|
arch=('i686' 'x86_64')
|
||||||
url="https://www.kernel.org/"
|
url="https://www.kernel.org/"
|
||||||
license=('GPL2')
|
license=('GPL2')
|
||||||
@ -23,19 +23,19 @@ source=("https://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar.xz"
|
|||||||
# standard config files for mkinitcpio ramdisk
|
# standard config files for mkinitcpio ramdisk
|
||||||
'linux.preset'
|
'linux.preset'
|
||||||
'change-default-console-loglevel.patch'
|
'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'
|
sha256sums=('029098dcffab74875e086ae970e3828456838da6e0ba22ce3f64ef764f3d7f1a'
|
||||||
'SKIP'
|
'SKIP'
|
||||||
'ec97e3bf8585865d409a804316b276a6b4e4939286de9757f99bfb41cf112078'
|
'23e773a670f3cac11a92c4e442405dea6d2c28fea0f914ea2ba4bea313c26541'
|
||||||
'SKIP'
|
'SKIP'
|
||||||
'b5c2a685667a884477904c9fb337d944667b6144720ac2a67d1116f711e70768'
|
'b5c2a685667a884477904c9fb337d944667b6144720ac2a67d1116f711e70768'
|
||||||
'ab6c0fab5b147fab9ccef90c62b963510e92fbd068a6a33b9619537243fedca4'
|
'ab6c0fab5b147fab9ccef90c62b963510e92fbd068a6a33b9619537243fedca4'
|
||||||
'834bd254b56ab71d73f59b3221f056c72f559553c04718e350ab2a3e2991afe0'
|
'834bd254b56ab71d73f59b3221f056c72f559553c04718e350ab2a3e2991afe0'
|
||||||
'ad6344badc91ad0630caacde83f7f9b97276f80d26a20619a87952be65492c65'
|
'ad6344badc91ad0630caacde83f7f9b97276f80d26a20619a87952be65492c65'
|
||||||
'1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99'
|
'1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99'
|
||||||
'3e955e0f1aae96bb6c1507236adc952640c9bd0a134b9995ab92106a33dc02d9')
|
'85954ac18da9dc1bec5df28e2f097d13016e39fa9631074f85b6364af340fcd9')
|
||||||
validpgpkeys=(
|
validpgpkeys=(
|
||||||
'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds
|
'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds
|
||||||
'647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman
|
'647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman
|
||||||
@ -49,10 +49,8 @@ prepare() {
|
|||||||
# add upstream patch
|
# add upstream patch
|
||||||
patch -p1 -i "${srcdir}/patch-${pkgver}"
|
patch -p1 -i "${srcdir}/patch-${pkgver}"
|
||||||
|
|
||||||
# Revert a commit that causes memory corruption in i686 chroots on our
|
# https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6074
|
||||||
# build server ("valgrind bash" immediately crashes)
|
patch -p1 -i "${srcdir}/0001-dccp-fix-freeing-skb-too-early-for-IPV6_RECVPKTINFO.patch"
|
||||||
# https://bugzilla.kernel.org/show_bug.cgi?id=190061
|
|
||||||
patch -Rp1 -i "${srcdir}/0001-x86-fpu-Fix-invalid-FPU-ptrace-state-after-execve.patch"
|
|
||||||
|
|
||||||
# add latest fixes from stable queue, if needed
|
# add latest fixes from stable queue, if needed
|
||||||
# http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git
|
# http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git
|
||||||
|
Loading…
Reference in New Issue
Block a user