Commit 4c3bffc2 authored by Chen Gang's avatar Chen Gang Committed by Linus Torvalds

mm/backing-dev.c: check user buffer length before copying data to the related user buffer

'*lenp' may be less than "sizeof(kbuf)" so we must check this before the
next copy_to_user().

pdflush_proc_obsolete() is called by sysctl which 'procname' is
"nr_pdflush_threads", if the user passes buffer length less than
"sizeof(kbuf)", it will cause issue.
Signed-off-by: default avatarChen Gang <gang.chen@asianux.com>
Reviewed-by: default avatarJan Kara <jack@suse.cz>
Cc: Tejun Heo <tj@kernel.org>
Cc: Jeff Moyer <jmoyer@redhat.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 1ecfd533
...@@ -652,7 +652,7 @@ int pdflush_proc_obsolete(struct ctl_table *table, int write, ...@@ -652,7 +652,7 @@ int pdflush_proc_obsolete(struct ctl_table *table, int write,
{ {
char kbuf[] = "0\n"; char kbuf[] = "0\n";
if (*ppos) { if (*ppos || *lenp < sizeof(kbuf)) {
*lenp = 0; *lenp = 0;
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment