[kernel] r14937 - in dists/lenny/linux-2.6/debian: . patches/bugfix/all patches/series
Ben Hutchings
benh at alioth.debian.org
Wed Jan 13 01:51:17 UTC 2010
Author: benh
Date: Wed Jan 13 01:51:14 2010
New Revision: 14937
Log:
x86: Increase MIN_GAP to include randomized stack (Closes: #559035)
Added:
dists/lenny/linux-2.6/debian/patches/bugfix/all/x86-Increase-MIN_GAP-to-include-randomized-stack.patch
Modified:
dists/lenny/linux-2.6/debian/changelog
dists/lenny/linux-2.6/debian/patches/series/22
Modified: dists/lenny/linux-2.6/debian/changelog
==============================================================================
--- dists/lenny/linux-2.6/debian/changelog Tue Jan 12 17:02:29 2010 (r14936)
+++ dists/lenny/linux-2.6/debian/changelog Wed Jan 13 01:51:14 2010 (r14937)
@@ -12,6 +12,7 @@
(Closes: #562694)
* dmfe/tulip: Let dmfe handle DM910x except for SPARC on-board chips
(Closes: #515533)
+ * x86: Increase MIN_GAP to include randomized stack (Closes: #559035)
-- maximilian attems <maks at debian.org> Mon, 28 Dec 2009 23:44:19 +0100
Added: dists/lenny/linux-2.6/debian/patches/bugfix/all/x86-Increase-MIN_GAP-to-include-randomized-stack.patch
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/lenny/linux-2.6/debian/patches/bugfix/all/x86-Increase-MIN_GAP-to-include-randomized-stack.patch Wed Jan 13 01:51:14 2010 (r14937)
@@ -0,0 +1,80 @@
+From 2578cf95969936c372db29ee2bbc21c9b6a299aa Mon Sep 17 00:00:00 2001
+From: Michal Hocko <mhocko at suse.cz>
+Date: Wed, 7 Oct 2009 17:38:24 -0400
+Subject: [PATCH] x86: Increase MIN_GAP to include randomized stack
+
+[ trivial backport to 2.6.27: Chuck Ebbert <cebbert at redhat.com> ]
+
+commit 80938332d8cf652f6b16e0788cf0ca136befe0b5 upstream.
+
+Currently we are not including randomized stack size when calculating
+mmap_base address in arch_pick_mmap_layout for topdown case. This might
+cause that mmap_base starts in the stack reserved area because stack is
+randomized by 1GB for 64b (8MB for 32b) and the minimum gap is 128MB.
+
+If the stack really grows down to mmap_base then we can get silent mmap
+region overwrite by the stack values.
+
+Let's include maximum stack randomization size into MIN_GAP which is
+used as the low bound for the gap in mmap.
+
+Signed-off-by: Michal Hocko <mhocko at suse.cz>
+LKML-Reference: <1252400515-6866-1-git-send-email-mhocko at suse.cz>
+Acked-by: Jiri Kosina <jkosina at suse.cz>
+Signed-off-by: H. Peter Anvin <hpa at zytor.com>
+Cc: Chuck Ebbert <cebbert at redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+---
+ arch/x86/mm/mmap.c | 17 +++++++++++++++--
+ include/asm-x86/elf.h | 2 ++
+ 2 files changed, 17 insertions(+), 2 deletions(-)
+
+diff --git a/arch/x86/mm/mmap.c b/arch/x86/mm/mmap.c
+index 56fe712..47dd8f5 100644
+--- a/arch/x86/mm/mmap.c
++++ b/arch/x86/mm/mmap.c
+@@ -29,13 +29,26 @@
+ #include <linux/random.h>
+ #include <linux/limits.h>
+ #include <linux/sched.h>
++#include <asm/elf.h>
++
++static unsigned int stack_maxrandom_size(void)
++{
++ unsigned int max = 0;
++ if ((current->flags & PF_RANDOMIZE) &&
++ !(current->personality & ADDR_NO_RANDOMIZE)) {
++ max = ((-1U) & STACK_RND_MASK) << PAGE_SHIFT;
++ }
++
++ return max;
++}
++
+
+ /*
+ * Top of mmap area (just below the process stack).
+ *
+- * Leave an at least ~128 MB hole.
++ * Leave an at least ~128 MB hole with possible stack randomization.
+ */
+-#define MIN_GAP (128*1024*1024)
++#define MIN_GAP (128*1024*1024UL + stack_maxrandom_size())
+ #define MAX_GAP (TASK_SIZE/6*5)
+
+ /*
+diff --git a/include/asm-x86/elf.h b/include/asm-x86/elf.h
+index 7be4733..36343b6 100644
+--- a/include/asm-x86/elf.h
++++ b/include/asm-x86/elf.h
+@@ -287,6 +287,8 @@ do { \
+
+ #ifdef CONFIG_X86_32
+
++#define STACK_RND_MASK (0x7ff)
++
+ #define VDSO_HIGH_BASE (__fix_to_virt(FIX_VDSO))
+
+ #define ARCH_DLINFO ARCH_DLINFO_IA32(vdso_enabled)
+--
+1.6.5.7
+
Modified: dists/lenny/linux-2.6/debian/patches/series/22
==============================================================================
--- dists/lenny/linux-2.6/debian/patches/series/22 Tue Jan 12 17:02:29 2010 (r14936)
+++ dists/lenny/linux-2.6/debian/patches/series/22 Wed Jan 13 01:51:14 2010 (r14937)
@@ -4,3 +4,4 @@
+ features/all/atl1c-backport.patch
+ features/all/atl1c-kbuild.patch
+ bugfix/all/dmfe-tulip-Let-dmfe-handle-DM910x-except-SPARC-onboard.patch
++ bugfix/all/x86-Increase-MIN_GAP-to-include-randomized-stack.patch
More information about the Kernel-svn-changes
mailing list