[PATCH] printk: Fix bounds checking for log_prefix.

From: William Douglas
Date: Mon Aug 15 2011 - 17:15:13 EST


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 <william.douglas@xxxxxxxxx>
---
kernel/printk.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/kernel/printk.c b/kernel/printk.c
index 37dff34..42080686 100644
--- a/kernel/printk.c
+++ b/kernel/printk.c
@@ -590,7 +590,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);
--
1.7.6
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/