Re: [PATCH] x86/mm: Fix personality(ADDR_NO_RANDOMIZE)
From: Kirill A. Shutemov
Date: Mon Aug 14 2017 - 12:22:38 EST
On Mon, Aug 14, 2017 at 07:13:47PM +0300, Cyrill Gorcunov wrote:
> On Mon, Aug 14, 2017 at 06:57:19PM +0300, Kirill A. Shutemov wrote:
> > In v4.12, during rework of infrastructure around mmap_base, disable-ASLR
> > personality flag got accidentally broken.
> >
> > Let's make it work again.
> >
> > Signed-off-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
> > Fixes: 1b028f784e8c ("x86/mm: Introduce mmap_compat_base() for 32-bit mmap()")
> > Cc: stable <stable@xxxxxxxxxxxxxxx> [4.12+]
> > ---
> > arch/x86/mm/mmap.c | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > diff --git a/arch/x86/mm/mmap.c b/arch/x86/mm/mmap.c
> > index 229d04a83f85..779bdbe5e424 100644
> > --- a/arch/x86/mm/mmap.c
> > +++ b/arch/x86/mm/mmap.c
> > @@ -127,6 +127,8 @@ static unsigned long mmap_legacy_base(unsigned long rnd,
> > static void arch_pick_mmap_base(unsigned long *base, unsigned long *legacy_base,
> > unsigned long random_factor, unsigned long task_size)
> > {
> > + if (!(current->flags & PF_RANDOMIZE))
> > + random_factor = 0;
> > *legacy_base = mmap_legacy_base(random_factor, task_size);
> > if (mmap_is_legacy())
> > *base = *legacy_base;
>
> Didn't Oleg's patch does the same?
Yes, it does. And it looks cleaner than my attempt.
> https://patchwork.kernel.org/patch/9832697/
>
> for some reason it's not yet merged.
--
Kirill A. Shutemov