Messages in this thread | | | Date | Mon, 3 Oct 2011 16:53:34 +0200 (CEST) | From | Jiri Kosina <> | Subject | Re: [RFC PATCH] binfmt_elf: Fix PIE execution with randomization disabled |
| |
On Thu, 29 Sep 2011, Josh Boyer wrote:
> Perhaps another check here for randomize? Something like: > > #if defined(CONFIG_X86) || defined(CONFIG_ARM) > if (current->flags & PF_RANDOMIZE) > load_bias = 0; > else if (vaddr) > load_bias = 0; > else > load_bias = ELF_PAGESTART(ELF_ET_DYN_BASE); > #else > load_bias = ELF_PAGESTART(ELF_ET_DYN_BASE - vaddr); > #endif > > If that's stupid, then feel free to tell me. I won't pretend like I > understand what is going on here yet, but based on the explanation you > provided that might work.
I have just verified my hunch that the original patch from H.J. / Josh breaks ASLR completely, so Andrew, please drop it for now.
I am now looking into how to fix things properly.
Josh, looking at what you are proposing -- do you see any reason to make the behavior different in #else branch and in !(current->flags & PF_RANDOMIZE) case?
-- Jiri Kosina SUSE Labs
| |