On Mon, 30 Nov 2015 16:04:36 -0800 Kees Cook <keescook@xxxxxxxxxxxx> wrote: > >> > +#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. hmpf. From: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> Subject: include/linux/sysctl.h: make ctl_table.extra1/2 const Nothing should be altering these values. Declare the pointed-to values to be const so we can actually use const values. Cc: Kees Cook <keescook@xxxxxxxxxxxx> Cc: Daniel Cashman <dcashman@xxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- include/linux/sysctl.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff -puN include/linux/sysctl.h~a include/linux/sysctl.h --- a/include/linux/sysctl.h~a +++ a/include/linux/sysctl.h @@ -111,8 +111,8 @@ struct ctl_table struct ctl_table *child; /* Deprecated */ proc_handler *proc_handler; /* Callback for text formatting */ struct ctl_table_poll *poll; - void *extra1; - void *extra2; + const void *extra1; + const void *extra2; }; struct ctl_node { diff -puN kernel/sysctl.c~a kernel/sysctl.c _ -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html