dect
/
linux-2.6
Archived
13
0
Fork 0

powerpc: Randomise PIEs

Randomise ELF_ET_DYN_BASE, which is used when loading position independent
executables.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
Anton Blanchard 2009-02-22 01:50:07 +00:00 committed by Benjamin Herrenschmidt
parent 002b0ec73d
commit 501cb16d3c
2 changed files with 12 additions and 1 deletions

View File

@ -179,7 +179,8 @@ typedef elf_fpreg_t elf_vsrreghalf_t32[ELF_NVSRHALFREG];
the loader. We need to make sure that it is out of the way of the program the loader. We need to make sure that it is out of the way of the program
that it will "exec", and that there is sufficient room for the brk. */ that it will "exec", and that there is sufficient room for the brk. */
#define ELF_ET_DYN_BASE (0x20000000) extern unsigned long randomize_et_dyn(unsigned long base);
#define ELF_ET_DYN_BASE (randomize_et_dyn(0x20000000))
/* /*
* Our registers are always unsigned longs, whether we're a 32 bit * Our registers are always unsigned longs, whether we're a 32 bit

View File

@ -1170,3 +1170,13 @@ unsigned long arch_randomize_brk(struct mm_struct *mm)
return ret; return ret;
} }
unsigned long randomize_et_dyn(unsigned long base)
{
unsigned long ret = PAGE_ALIGN(base + brk_rnd());
if (ret < base)
return base;
return ret;
}