[PATCH] binfmt_elf: randomize PIE binaries

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Randomizes -pie compiled binaries over the whole address
range from 0 up to ELF_ET_DYN_BASE.

Signed-off-by: Marcus Meissner <[email protected]>

----
 binfmt_elf.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)


--- linux-2.6.18/fs/binfmt_elf.c.xx	2006-10-19 11:21:49.000000000 +0200
+++ linux-2.6.18/fs/binfmt_elf.c	2006-10-19 11:24:58.000000000 +0200
@@ -856,7 +856,12 @@ static int load_elf_binary(struct linux_
 			 * 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(0, ELF_ET_DYN_BASE,
+							    vaddr);
+			else
+				load_bias = ELF_ET_DYN_BASE - vaddr;
+			load_bias = ELF_PAGESTART(load_bias);
 		}
 
 		error = elf_map(bprm->file, load_bias + vaddr, elf_ppnt,
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux