Re: [PATCH v2] sched: check user input value of sysctl_sched_time_avg

From: Ethan Zhao
Date: Mon Sep 04 2017 - 03:54:05 EST


Peter,


On 2017/9/4 15:49, Peter Zijlstra wrote:
On Sat, Sep 02, 2017 at 02:57:32PM +0800, Ethan Zhao wrote:
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index 6648fbb..609bed2 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -367,7 +367,7 @@ static int sysrq_sysctl_handler(struct ctl_table *table, int write,
.data = &sysctl_sched_time_avg,
.maxlen = sizeof(unsigned int),
.mode = 0644,
- .proc_handler = proc_dointvec,
+ .proc_handler = sched_time_avg_handler,
*sigh*, what's wrong with the below? Too easy?
Â:), seems I walked zigzag several cycles to get the right point.

ÂThanks,
ÂEthan

diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index 6648fbbb8157..bbbc6a17c15e 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -367,7 +367,8 @@ static struct ctl_table kern_table[] = {
.data = &sysctl_sched_time_avg,
.maxlen = sizeof(unsigned int),
.mode = 0644,
- .proc_handler = proc_dointvec,
+ .proc_handler = proc_dointvec_min_max,
+ .extra1 = &one,
},
#ifdef CONFIG_SCHEDSTATS
{