aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/kstrtox.c9
-rw-r--r--lib/test-kstrtox.c32
2 files changed, 19 insertions, 22 deletions
diff --git a/lib/kstrtox.c b/lib/kstrtox.c
index 05672e819f8c..a235f3cc471c 100644
--- a/lib/kstrtox.c
+++ b/lib/kstrtox.c
@@ -49,12 +49,9 @@ static int _kstrtoull(const char *s, unsigned int base, unsigned long long *res)
49 val = *s - '0'; 49 val = *s - '0';
50 else if ('a' <= _tolower(*s) && _tolower(*s) <= 'f') 50 else if ('a' <= _tolower(*s) && _tolower(*s) <= 'f')
51 val = _tolower(*s) - 'a' + 10; 51 val = _tolower(*s) - 'a' + 10;
52 else if (*s == '\n') { 52 else if (*s == '\n' && *(s + 1) == '\0')
53 if (*(s + 1) == '\0') 53 break;
54 break; 54 else
55 else
56 return -EINVAL;
57 } else
58 return -EINVAL; 55 return -EINVAL;
59 56
60 if (val >= base) 57 if (val >= base)
diff --git a/lib/test-kstrtox.c b/lib/test-kstrtox.c
index 325c2f9ecebd..d55769d63cb8 100644
--- a/lib/test-kstrtox.c
+++ b/lib/test-kstrtox.c
@@ -315,12 +315,12 @@ static void __init test_kstrtou64_ok(void)
315 {"65537", 10, 65537}, 315 {"65537", 10, 65537},
316 {"2147483646", 10, 2147483646}, 316 {"2147483646", 10, 2147483646},
317 {"2147483647", 10, 2147483647}, 317 {"2147483647", 10, 2147483647},
318 {"2147483648", 10, 2147483648}, 318 {"2147483648", 10, 2147483648ULL},
319 {"2147483649", 10, 2147483649}, 319 {"2147483649", 10, 2147483649ULL},
320 {"4294967294", 10, 4294967294}, 320 {"4294967294", 10, 4294967294ULL},
321 {"4294967295", 10, 4294967295}, 321 {"4294967295", 10, 4294967295ULL},
322 {"4294967296", 10, 4294967296}, 322 {"4294967296", 10, 4294967296ULL},
323 {"4294967297", 10, 4294967297}, 323 {"4294967297", 10, 4294967297ULL},
324 {"9223372036854775806", 10, 9223372036854775806ULL}, 324 {"9223372036854775806", 10, 9223372036854775806ULL},
325 {"9223372036854775807", 10, 9223372036854775807ULL}, 325 {"9223372036854775807", 10, 9223372036854775807ULL},
326 {"9223372036854775808", 10, 9223372036854775808ULL}, 326 {"9223372036854775808", 10, 9223372036854775808ULL},
@@ -369,12 +369,12 @@ static void __init test_kstrtos64_ok(void)
369 {"65537", 10, 65537}, 369 {"65537", 10, 65537},
370 {"2147483646", 10, 2147483646}, 370 {"2147483646", 10, 2147483646},
371 {"2147483647", 10, 2147483647}, 371 {"2147483647", 10, 2147483647},
372 {"2147483648", 10, 2147483648}, 372 {"2147483648", 10, 2147483648LL},
373 {"2147483649", 10, 2147483649}, 373 {"2147483649", 10, 2147483649LL},
374 {"4294967294", 10, 4294967294}, 374 {"4294967294", 10, 4294967294LL},
375 {"4294967295", 10, 4294967295}, 375 {"4294967295", 10, 4294967295LL},
376 {"4294967296", 10, 4294967296}, 376 {"4294967296", 10, 4294967296LL},
377 {"4294967297", 10, 4294967297}, 377 {"4294967297", 10, 4294967297LL},
378 {"9223372036854775806", 10, 9223372036854775806LL}, 378 {"9223372036854775806", 10, 9223372036854775806LL},
379 {"9223372036854775807", 10, 9223372036854775807LL}, 379 {"9223372036854775807", 10, 9223372036854775807LL},
380 }; 380 };
@@ -418,10 +418,10 @@ static void __init test_kstrtou32_ok(void)
418 {"65537", 10, 65537}, 418 {"65537", 10, 65537},
419 {"2147483646", 10, 2147483646}, 419 {"2147483646", 10, 2147483646},
420 {"2147483647", 10, 2147483647}, 420 {"2147483647", 10, 2147483647},
421 {"2147483648", 10, 2147483648}, 421 {"2147483648", 10, 2147483648U},
422 {"2147483649", 10, 2147483649}, 422 {"2147483649", 10, 2147483649U},
423 {"4294967294", 10, 4294967294}, 423 {"4294967294", 10, 4294967294U},
424 {"4294967295", 10, 4294967295}, 424 {"4294967295", 10, 4294967295U},
425 }; 425 };
426 TEST_OK(kstrtou32, u32, "%u", test_u32_ok); 426 TEST_OK(kstrtou32, u32, "%u", test_u32_ok);
427} 427}