Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Revert "[PATCH] binfmt_elf: randomize PIE binaries (2nd try)"

This reverts commit 59287c0913cc9a6c75712a775f6c1c1ef418ef3b.

Hugh Dickins reports that it causes random failures on x86 with SuSE
10.2, and points out

"Isn't that randomization, anywhere from 0x10000 to ELF_ET_DYN_BASE,
sure to place the ET_DYN from time to time just where the comment
says it's trying to avoid? I assume that somehow results in the error
reported."

(where the comment in question is the existing comment in the source
code about mmap/brk clashes).

Suggested-by: Hugh Dickins <hugh@veritas.com>
Acked-by: Marcus Meissner <meissner@suse.de>
Cc: Andrew Morton <akpm@osdl.org>
Cc: Andi Kleen <ak@suse.de>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Dave Jones <davej@codemonkey.org.uk>
Cc: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

+1 -7
+1 -7
fs/binfmt_elf.c
··· 854 854 * default mmap base, as well as whatever program they 855 855 * might try to exec. This is because the brk will 856 856 * follow the loader, and is not movable. */ 857 - if (current->flags & PF_RANDOMIZE) 858 - load_bias = randomize_range(0x10000, 859 - ELF_ET_DYN_BASE, 860 - 0); 861 - else 862 - load_bias = ELF_ET_DYN_BASE; 863 - load_bias = ELF_PAGESTART(load_bias - vaddr); 857 + load_bias = ELF_PAGESTART(ELF_ET_DYN_BASE - vaddr); 864 858 } 865 859 866 860 error = elf_map(bprm->file, load_bias + vaddr, elf_ppnt,