diff options
author | Jiri Kosina <jkosina@suse.cz> | 2008-01-30 07:31:07 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-30 07:31:07 -0500 |
commit | cc503c1b43e002e3f1fed70f46d947e2bf349bb6 (patch) | |
tree | df0d77b7bccf0148c7b7cdd0363354499b259f99 /arch/ia64/ia32 | |
parent | 82f74e7159749cc511ebf5954a7b9ea6ad634949 (diff) |
x86: PIE executable randomization
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).
The code has been extraced from Ingo's exec-shield patch
http://people.redhat.com/mingo/exec-shield/
[akpm@linux-foundation.org: fix used-uninitialsied warning]
[kamezawa.hiroyu@jp.fujitsu.com: fixed ia32 ELF on x86_64 handling]
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Arjan van de Ven <arjan@infradead.org>
Cc: Roland McGrath <roland@redhat.com>
Cc: Jakub Jelinek <jakub@redhat.com>
Cc: "Luck, Tony" <tony.luck@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/ia64/ia32')
-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 3e35987af458..2a662215359c 100644 --- a/arch/ia64/ia32/binfmt_elf32.c +++ b/arch/ia64/ia32/binfmt_elf32.c | |||
@@ -222,7 +222,7 @@ elf32_set_personality (void) | |||
222 | } | 222 | } |
223 | 223 | ||
224 | static unsigned long | 224 | static unsigned long |
225 | elf32_map (struct file *filep, unsigned long addr, struct elf_phdr *eppnt, int prot, int type) | 225 | elf32_map (struct file *filep, unsigned long addr, struct elf_phdr *eppnt, int prot, int type, unsigned long unused) |
226 | { | 226 | { |
227 | unsigned long pgoff = (eppnt->p_vaddr) & ~IA32_PAGE_MASK; | 227 | unsigned long pgoff = (eppnt->p_vaddr) & ~IA32_PAGE_MASK; |
228 | 228 | ||