From c0044eb48f0b2b8e31de4aac28e014cf84227e74 Mon Sep 17 00:00:00 2001 From: "J. R. Okajima" Date: Tue, 25 May 2010 16:10:14 -0700 Subject: [PATCH] --- yaml --- r: 198625 b: refs/heads/master c: 563b04671017ea00ba563ebeebdc36bce79b1b60 h: refs/heads/master i: 198623: 583e24bcc4277e5d280d3d7ecfb77afa81cb9968 v: v3 --- [refs] | 2 +- trunk/kernel/sysctl.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 396571ceffa4..824d683144a9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: dd7496f217462a23a9a8a15b9925866eaad76e22 +refs/heads/master: 563b04671017ea00ba563ebeebdc36bce79b1b60 diff --git a/trunk/kernel/sysctl.c b/trunk/kernel/sysctl.c index b12583047757..f948f20f09cb 100644 --- a/trunk/kernel/sysctl.c +++ b/trunk/kernel/sysctl.c @@ -2253,6 +2253,8 @@ static int __do_proc_dointvec(void *tbl_data, struct ctl_table *table, if (write) { left -= proc_skip_spaces(&kbuf); + if (!left) + break; err = proc_get_long(&kbuf, &left, &lval, &neg, proc_wspace_sep, sizeof(proc_wspace_sep), NULL); @@ -2279,7 +2281,7 @@ static int __do_proc_dointvec(void *tbl_data, struct ctl_table *table, if (!write && !first && left && !err) err = proc_put_char(&buffer, &left, '\n'); - if (write && !err) + if (write && !err && left) left -= proc_skip_spaces(&kbuf); free: if (write) {