lkml.org 
[lkml]   [2015]   [Nov]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH v4 1/4] mm: mmap: Add new /proc tunable for mmap_base ASLR.
From
On Mon, Nov 30, 2015 at 4:01 PM, Andrew Morton
<akpm@linux-foundation.org> wrote:
> On Mon, 30 Nov 2015 15:54:12 -0800 Andrew Morton <akpm@linux-foundation.org> wrote:
>
>> On Thu, 26 Nov 2015 14:59:42 -0800 Daniel Cashman <dcashman@android.com> 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?

The _min and _max values shouldn't be changing: they're decided based
on the various CONFIG options that calculate the valid min/maxes. Only
mmap_rnd_bits itself should be changing.

-Kees

--
Kees Cook
Chrome OS & Brillo Security


\
 
 \ /
  Last update: 2015-12-01 01:21    [W:0.054 / U:0.172 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site