X-Git-Url: http://ftp.safe.ca/?p=safe%2Fjmp%2Flinux-2.6;a=blobdiff_plain;f=kernel%2Fsysctl.c;h=997080f00e0bcbfca3669af93a97eb5951c17811;hp=84ff5e75c084f2d4ccbe94fd6ce0a43061726125;hb=b1cdc4670b9508fcd47a15fbd12f70d269880b37;hpb=ce7d0226198aac42ed311dd2783232adc16b296d diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 84ff5e7..997080f 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -2287,6 +2287,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); @@ -2313,7 +2315,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) {