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 /include/asm-x86/pgtable_64.h | |
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 'include/asm-x86/pgtable_64.h')
-rw-r--r-- | include/asm-x86/pgtable_64.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/asm-x86/pgtable_64.h b/include/asm-x86/pgtable_64.h index 9d4f11dd566f..6cf40dec0932 100644 --- a/include/asm-x86/pgtable_64.h +++ b/include/asm-x86/pgtable_64.h | |||
@@ -413,6 +413,7 @@ pte_t *lookup_address(unsigned long addr); | |||
413 | remap_pfn_range(vma, vaddr, pfn, size, prot) | 413 | remap_pfn_range(vma, vaddr, pfn, size, prot) |
414 | 414 | ||
415 | #define HAVE_ARCH_UNMAPPED_AREA | 415 | #define HAVE_ARCH_UNMAPPED_AREA |
416 | #define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN | ||
416 | 417 | ||
417 | #define pgtable_cache_init() do { } while (0) | 418 | #define pgtable_cache_init() do { } while (0) |
418 | #define check_pgt_cache() do { } while (0) | 419 | #define check_pgt_cache() do { } while (0) |