[PATCH v4 1/4] mm: mmap: Add new /proc tunable for mmap_base ASLR.
Andrew Morton
akpm at linux-foundation.org
Mon Nov 30 15:54:12 PST 2015
On Thu, 26 Nov 2015 14:59:42 -0800 Daniel Cashman <dcashman at 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.
More information about the linux-arm-kernel
mailing list