diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-02-06 22:39:44 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-02-06 22:39:44 +0100 |
commit | 32a932332c8bad842804842eaf9651ad6268e637 (patch) | |
tree | 58f187409029f089f788c5c35ad5c200b4a555af /mm/memory.c | |
parent | 4cc6028d4040f95cdb590a87db478b42b8be0508 (diff) |
brk randomization: introduce CONFIG_COMPAT_BRK
based on similar patch from: Pavel Machek <pavel@ucw.cz>
Introduce CONFIG_COMPAT_BRK. If disabled then the kernel is free
(but not obliged to) randomize the brk area.
Heap randomization breaks ancient binaries, so we keep COMPAT_BRK
enabled by default.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'mm/memory.c')
-rw-r--r-- | mm/memory.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/mm/memory.c b/mm/memory.c index 7bb70728bb5..9d073fa0a2d 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -82,7 +82,18 @@ void * high_memory; EXPORT_SYMBOL(num_physpages); EXPORT_SYMBOL(high_memory); -int randomize_va_space __read_mostly = 1; +/* + * Randomize the address space (stacks, mmaps, brk, etc.). + * + * ( When CONFIG_COMPAT_BRK=y we exclude brk from randomization, + * as ancient (libc5 based) binaries can segfault. ) + */ +int randomize_va_space __read_mostly = +#ifdef CONFIG_COMPAT_BRK + 1; +#else + 2; +#endif static int __init disable_randmaps(char *s) { |