KEYS/DNS: Fix ____call_usermodehelper() to not lose the session keyring
[linux-3.10.git] / security / keys / sysctl.c
index b611d49..ee32d18 100644 (file)
 #include <linux/sysctl.h>
 #include "internal.h"
 
+static const int zero, one = 1, max = INT_MAX;
+
 ctl_table key_sysctls[] = {
        {
-               .ctl_name = CTL_UNNUMBERED,
                .procname = "maxkeys",
                .data = &key_quota_maxkeys,
                .maxlen = sizeof(unsigned),
                .mode = 0644,
-               .proc_handler = &proc_dointvec,
+               .proc_handler = proc_dointvec_minmax,
+               .extra1 = (void *) &one,
+               .extra2 = (void *) &max,
        },
        {
-               .ctl_name = CTL_UNNUMBERED,
                .procname = "maxbytes",
                .data = &key_quota_maxbytes,
                .maxlen = sizeof(unsigned),
                .mode = 0644,
-               .proc_handler = &proc_dointvec,
+               .proc_handler = proc_dointvec_minmax,
+               .extra1 = (void *) &one,
+               .extra2 = (void *) &max,
        },
        {
-               .ctl_name = CTL_UNNUMBERED,
                .procname = "root_maxkeys",
                .data = &key_quota_root_maxkeys,
                .maxlen = sizeof(unsigned),
                .mode = 0644,
-               .proc_handler = &proc_dointvec,
+               .proc_handler = proc_dointvec_minmax,
+               .extra1 = (void *) &one,
+               .extra2 = (void *) &max,
        },
        {
-               .ctl_name = CTL_UNNUMBERED,
                .procname = "root_maxbytes",
                .data = &key_quota_root_maxbytes,
                .maxlen = sizeof(unsigned),
                .mode = 0644,
-               .proc_handler = &proc_dointvec,
+               .proc_handler = proc_dointvec_minmax,
+               .extra1 = (void *) &one,
+               .extra2 = (void *) &max,
+       },
+       {
+               .procname = "gc_delay",
+               .data = &key_gc_delay,
+               .maxlen = sizeof(unsigned),
+               .mode = 0644,
+               .proc_handler = proc_dointvec_minmax,
+               .extra1 = (void *) &zero,
+               .extra2 = (void *) &max,
        },
-       { .ctl_name = 0 }
+       { }
 };