| From b94bf594cf8ed67cdd0439e70fa939783471597a Mon Sep 17 00:00:00 2001 |
| From: Myungho Jung <mhjungk@gmail.com> |
| Date: Wed, 19 Apr 2017 15:24:50 -0700 |
| Subject: timer/sysclt: Restrict timer migration sysctl values to 0 and 1 |
| |
| From: Myungho Jung <mhjungk@gmail.com> |
| |
| commit b94bf594cf8ed67cdd0439e70fa939783471597a upstream. |
| |
| timer_migration sysctl acts as a boolean switch, so the allowed values |
| should be restricted to 0 and 1. |
| |
| Add the necessary extra fields to the sysctl table entry to enforce that. |
| |
| [ tglx: Rewrote changelog ] |
| |
| Signed-off-by: Myungho Jung <mhjungk@gmail.com> |
| Link: http://lkml.kernel.org/r/1492640690-3550-1-git-send-email-mhjungk@gmail.com |
| Signed-off-by: Thomas Gleixner <tglx@linutronix.de> |
| Cc: Kazuhiro Hayashi <kazuhiro3.hayashi@toshiba.co.jp> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| kernel/sysctl.c | 2 ++ |
| kernel/time/timer.c | 2 +- |
| 2 files changed, 3 insertions(+), 1 deletion(-) |
| |
| --- a/kernel/sysctl.c |
| +++ b/kernel/sysctl.c |
| @@ -1189,6 +1189,8 @@ static struct ctl_table kern_table[] = { |
| .maxlen = sizeof(unsigned int), |
| .mode = 0644, |
| .proc_handler = timer_migration_handler, |
| + .extra1 = &zero, |
| + .extra2 = &one, |
| }, |
| #endif |
| #ifdef CONFIG_BPF_SYSCALL |
| --- a/kernel/time/timer.c |
| +++ b/kernel/time/timer.c |
| @@ -240,7 +240,7 @@ int timer_migration_handler(struct ctl_t |
| int ret; |
| |
| mutex_lock(&mutex); |
| - ret = proc_dointvec(table, write, buffer, lenp, ppos); |
| + ret = proc_dointvec_minmax(table, write, buffer, lenp, ppos); |
| if (!ret && write) |
| timers_update_migration(false); |
| mutex_unlock(&mutex); |