diff options
author | Jan Kratochvil <honza@jikos.cz> | 2007-07-16 02:40:06 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-16 12:05:42 -0400 |
commit | 60bfba7e85f88fe834e623ead799cf580de20971 (patch) | |
tree | d27468bc99bfbe8dcfa6fa0e8b8599d2a6e6c7de /arch/ia64 | |
parent | f057eac0d7ad967138390a9dd7fd8267e1e39d19 (diff) |
PIE randomization
This patch is using mmap()'s randomization functionality in such a way that
it maps the main executable of (specially compiled/linked -pie/-fpie)
ET_DYN binaries onto a random address (in cases in which mmap() is allowed
to perform a randomization).
Origin of this patch is in exec-shield
(http://people.redhat.com/mingo/exec-shield/)
[jkosina@suse.cz: pie randomization: fix BAD_ADDR macro]
Signed-off-by: Jan Kratochvil <honza@jikos.cz>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Roland McGrath <roland@redhat.com>
Cc: Jakub Jelinek <jakub@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/ia64')
-rw-r--r-- | arch/ia64/ia32/binfmt_elf32.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/ia64/ia32/binfmt_elf32.c b/arch/ia64/ia32/binfmt_elf32.c index c05bda662364..6f4d3d06f0ed 100644 --- a/arch/ia64/ia32/binfmt_elf32.c +++ b/arch/ia64/ia32/binfmt_elf32.c | |||
@@ -261,7 +261,7 @@ elf32_set_personality (void) | |||
261 | } | 261 | } |
262 | 262 | ||
263 | static unsigned long | 263 | static unsigned long |
264 | elf32_map (struct file *filep, unsigned long addr, struct elf_phdr *eppnt, int prot, int type) | 264 | elf32_map (struct file *filep, unsigned long addr, struct elf_phdr *eppnt, int prot, int type, unsigned long unused) |
265 | { | 265 | { |
266 | unsigned long pgoff = (eppnt->p_vaddr) & ~IA32_PAGE_MASK; | 266 | unsigned long pgoff = (eppnt->p_vaddr) & ~IA32_PAGE_MASK; |
267 | 267 | ||