Messages in this thread Patch in this message | | | Date | Sat, 22 Nov 2008 21:33:41 +0100 | From | Pavel Machek <> | Subject | strict_strto* is not strict enough |
| |
It decodes "\n" as 0, which is bad, because stray echo into backlight will turn your backlight off, etc...
Signed-off-by: Pavel Machek <pavel@suse.cz>
diff --git a/lib/vsprintf.c b/lib/vsprintf.c index a013bbc..87d12a7 100644 --- a/lib/vsprintf.c +++ b/lib/vsprintf.c @@ -170,6 +170,8 @@ int strict_strtoul(const char *cp, unsig return -EINVAL; val = simple_strtoul(cp, &tail, base); + if (tail == cp) + return -EINVAL; if ((*tail == '\0') || ((len == (size_t)(tail - cp) + 1) && (*tail == '\n'))) { *res = val; @@ -241,6 +243,8 @@ int strict_strtoull(const char *cp, unsi return -EINVAL; val = simple_strtoull(cp, &tail, base); + if (tail == cp) + return -EINVAL; if ((*tail == '\0') || ((len == (size_t)(tail - cp) + 1) && (*tail == '\n'))) { *res = val; -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
| |