diff options
author | BP, Praveen <praveenbp@ti.com> | 2006-12-06 20:39:09 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-07 08:39:42 -0800 |
commit | bd9b0bac6f601655044fc35978e26231dffee03e (patch) | |
tree | b6cc16149e406704e1e124aa159671beb63b7a56 /kernel/configs.c | |
parent | 36499dc2bc8025bc931a0fb22bbe0ac0e46ffb14 (diff) | |
download | blackbird-obmc-linux-bd9b0bac6f601655044fc35978e26231dffee03e.tar.gz blackbird-obmc-linux-bd9b0bac6f601655044fc35978e26231dffee03e.zip |
[PATCH] sysctl: string length calculated is wrong if it contains negative numbers
In the functions do_proc_dointvec() and do_proc_doulongvec_minmax(),
there seems to be a bug in string length calculation if string contains
negative integer.
The console log given below explains the bug. Setting negative values
may not be a right thing to do for "console log level" but then the test
(given below) can be used to demonstrate the bug in the code.
# echo "-1 -1 -1 -123456" > /proc/sys/kernel/printk
# cat /proc/sys/kernel/printk
-1 -1 -1 -1234
#
# echo "-1 -1 -1 123456" > /proc/sys/kernel/printk
# cat /proc/sys/kernel/printk
-1 -1 -1 1234
#
(akpm: the bug is that 123456 gets truncated)
It works as expected if string contains all +ve integers
# echo "1 2 3 4" > /proc/sys/kernel/printk
# cat /proc/sys/kernel/printk
1 2 3 4
#
The patch given below fixes the issue.
Signed-off-by: Praveen BP <praveenbp@ti.com>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel/configs.c')
0 files changed, 0 insertions, 0 deletions