Messages in this thread | | | Date | Mon, 3 Oct 2011 11:03:46 -0400 | From | Josh Boyer <> | Subject | Re: [RFC PATCH] binfmt_elf: Fix PIE execution with randomization disabled |
| |
On Mon, Oct 03, 2011 at 04:53:34PM +0200, Jiri Kosina wrote: > 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.
Yes, please drop the original.
> 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?
I was mostly just trying to adapt H.J.'s patch to account for the PF_RANDOMIZE case. Looking at it a bit more, I'm not sure why they would need to be different. H.J., do you recall why you made that change originally?
josh
| |