From b44124c822198e9bd16f354191cd6514f95ee1a7 Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Wed, 6 Dec 2006 20:36:24 -0800 Subject: [PATCH] --- yaml --- r: 42795 b: refs/heads/master c: 59287c0913cc9a6c75712a775f6c1c1ef418ef3b h: refs/heads/master i: 42793: 99c00699de25537a0e5581f38c00d68ed41a7054 42791: 9e6a1fcba6a715caefc3f739c501257548fbbb12 v: v3 --- [refs] | 2 +- trunk/fs/binfmt_elf.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 11af3c775eb0..9d724a60aca2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b23984d0a12a4821b2e9712c71550f321eb88bb5 +refs/heads/master: 59287c0913cc9a6c75712a775f6c1c1ef418ef3b diff --git a/trunk/fs/binfmt_elf.c b/trunk/fs/binfmt_elf.c index cc72bb43061d..b2efbaead6c3 100644 --- a/trunk/fs/binfmt_elf.c +++ b/trunk/fs/binfmt_elf.c @@ -856,7 +856,13 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs) * 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(0x10000, + ELF_ET_DYN_BASE, + 0); + else + load_bias = ELF_ET_DYN_BASE; + load_bias = ELF_PAGESTART(load_bias - vaddr); } error = elf_map(bprm->file, load_bias + vaddr, elf_ppnt,