Currently shmmni proc entry accepts all entered integer values, but
the practical limit is IPCMNI (32768).  This confuses user as if a
bigger value were accepted but not applied correctly.

This patch changes the proc entry to use *_minmax variant to limit the
accepted values accordingly.

Signed-off-by: Takashi Iwai <[email protected]>
---
 ipc/ipc_sysctl.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/ipc/ipc_sysctl.c b/ipc/ipc_sysctl.c
index 8ad93c29f511..0c8f89f54e61 100644
--- a/ipc/ipc_sysctl.c
+++ b/ipc/ipc_sysctl.c
@@ -99,6 +99,7 @@ static int proc_ipc_auto_msgmni(struct ctl_table *table, int 
write,
 static int zero;
 static int one = 1;
 static int int_max = INT_MAX;
+static int ipcmni = IPCMNI;
 
 static struct ctl_table ipc_kern_table[] = {
        {
@@ -120,7 +121,9 @@ static struct ctl_table ipc_kern_table[] = {
                .data           = &init_ipc_ns.shm_ctlmni,
                .maxlen         = sizeof(init_ipc_ns.shm_ctlmni),
                .mode           = 0644,
-               .proc_handler   = proc_ipc_dointvec,
+               .proc_handler   = proc_ipc_dointvec_minmax,
+               .extra1         = &zero,
+               .extra2         = &ipcmni,
        },
        {
                .procname       = "shm_rmid_forced",
-- 
2.17.0

Reply via email to