diff options
author | Jeff Dike <jdike@addtoit.com> | 2006-09-26 02:33:01 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-09-26 11:49:05 -0400 |
commit | 8f80e9466e18288df7391c9d21532c4125ac9c62 (patch) | |
tree | 2895ff7fc1414c9c92a92abbed6a28c7e3de38b3 | |
parent | 91b165c0594ab78c64f26d26e3174e6dfd60ed9d (diff) |
[PATCH] uml: Fix stack alignment
Stack randomization needs to be conditional on the personality allowing it.
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | arch/um/kernel/process_kern.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/um/kernel/process_kern.c b/arch/um/kernel/process_kern.c index f6a5a502120b..537895d68ad1 100644 --- a/arch/um/kernel/process_kern.c +++ b/arch/um/kernel/process_kern.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #include "linux/proc_fs.h" | 23 | #include "linux/proc_fs.h" |
24 | #include "linux/ptrace.h" | 24 | #include "linux/ptrace.h" |
25 | #include "linux/random.h" | 25 | #include "linux/random.h" |
26 | #include "linux/personality.h" | ||
26 | #include "asm/unistd.h" | 27 | #include "asm/unistd.h" |
27 | #include "asm/mman.h" | 28 | #include "asm/mman.h" |
28 | #include "asm/segment.h" | 29 | #include "asm/segment.h" |
@@ -476,7 +477,7 @@ int singlestepping(void * t) | |||
476 | #ifndef arch_align_stack | 477 | #ifndef arch_align_stack |
477 | unsigned long arch_align_stack(unsigned long sp) | 478 | unsigned long arch_align_stack(unsigned long sp) |
478 | { | 479 | { |
479 | if (randomize_va_space) | 480 | if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space) |
480 | sp -= get_random_int() % 8192; | 481 | sp -= get_random_int() % 8192; |
481 | return sp & ~0xf; | 482 | return sp & ~0xf; |
482 | } | 483 | } |