From: William Douglas Date: Tue, 1 Nov 2011 00:11:29 +0000 (-0700) Subject: printk: fix bounds checking for log_prefix X-Git-Tag: v3.2-rc1~108^2~35 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=48e41899e4a3592746e5263c14681bf5c1393563;p=platform%2Fkernel%2Flinux-exynos.git printk: fix bounds checking for log_prefix Currently log_prefix is testing that the first character of the log level and facility is less than '0' and greater than '9' (which is always false). It should be testing to see if the character less than '0' or greater than '9' instead. This patch makes that change. The code being changed worked because strtoul bombs out (endp isn't updated) and 0 is returned anyway. Signed-off-by: William Douglas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/kernel/printk.c b/kernel/printk.c index 6d9dedd..286d2c7 100644 --- a/kernel/printk.c +++ b/kernel/printk.c @@ -595,7 +595,7 @@ static size_t log_prefix(const char *p, unsigned int *level, char *special) /* multi digit including the level and facility number */ char *endp = NULL; - if (p[1] < '0' && p[1] > '9') + if (p[1] < '0' || p[1] > '9') return 0; lev = (simple_strtoul(&p[1], &endp, 10) & 7);