* PATCH: binfmt_elf: randomize PIE binaries (3rd try)
@ 2006-11-14 12:26 Marcus Meissner
0 siblings, 0 replies; only message in thread
From: Marcus Meissner @ 2006-11-14 12:26 UTC (permalink / raw)
To: akpm, linux-kernel
Randomizes -pie compiled binaries from 64k (0x10000) up to
ELF_ET_DYN_BASE.
0 -> 64k is excluded to allow NULL ptr array accesses
to fail.
Signed-off-by: Marcus Meissner <meissner@suse.de>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Dave Jones <davej@codemonkey.org.uk>
Cc: Arjan van de Ven <arjan@linux.intel.com>
----
binfmt_elf.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
--- linux-2.6.18/fs/binfmt_elf.c.xx 2006-10-20 10:42:03.000000000 +0200
+++ linux-2.6.18/fs/binfmt_elf.c 2006-10-20 10:51:27.000000000 +0200
@@ -856,7 +856,13 @@
* default mmap base, as well as whatever program they
* might try to exec. This is because the brk will
* follow the loader, and is not movable. */
- load_bias = ELF_PAGESTART(ELF_ET_DYN_BASE - vaddr);
+ if (current->flags & PF_RANDOMIZE)
+ load_bias = randomize_range(0x10000,
+ ELF_ET_DYN_BASE,
+ 0);
+ else
+ load_bias = ELF_ET_DYN_BASE;
+ load_bias = ELF_PAGESTART(load_bias - vaddr);
}
error = elf_map(bprm->file, load_bias + vaddr, elf_ppnt,
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2006-11-14 12:26 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-11-14 12:26 PATCH: binfmt_elf: randomize PIE binaries (3rd try) Marcus Meissner
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.