Re: [PATCH v4 1/4] mm: mmap: Add new /proc tunable for mmap_base ASLR.

From: Andrew Morton
Date: Mon Nov 30 2015 - 19:01:25 EST


On Mon, 30 Nov 2015 15:54:12 -0800 Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:

> On Thu, 26 Nov 2015 14:59:42 -0800 Daniel Cashman <dcashman@xxxxxxxxxxx> wrote:
>
> > ASLR only uses as few as 8 bits to generate the random offset for the
> > mmap base address on 32 bit architectures. This value was chosen to
> > prevent a poorly chosen value from dividing the address space in such
> > a way as to prevent large allocations. This may not be an issue on all
> > platforms. Allow the specification of a minimum number of bits so that
> > platforms desiring greater ASLR protection may determine where to place
> > the trade-off.
> >
> > --- a/kernel/sysctl.c
> > +++ b/kernel/sysctl.c
> > @@ -1568,6 +1568,28 @@ static struct ctl_table vm_table[] = {
> > .mode = 0644,
> > .proc_handler = proc_doulongvec_minmax,
> > },
> > +#ifdef CONFIG_HAVE_ARCH_MMAP_RND_BITS
> > + {
> > + .procname = "mmap_rnd_bits",
> > + .data = &mmap_rnd_bits,
> > + .maxlen = sizeof(mmap_rnd_bits),
> > + .mode = 0600,
> > + .proc_handler = proc_dointvec_minmax,
> > + .extra1 = (void *) &mmap_rnd_bits_min,
> > + .extra2 = (void *) &mmap_rnd_bits_max,
>
> hm, why the typecasts? They're unneeded and are omitted everywhere(?)
> else in kernel/sysctl.c.
>

Oh. Casting away constness.

What's the thinking here? They can change at any time so they aren't
const so we shouldn't declare them to be const?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/