lib/atoi/strtoi/, tests/: strto[iu]_(): 1 is an invalid base
Signed-off-by: Alejandro Colomar <alx@kernel.org>
This commit is contained in:
committed by
Serge Hallyn
parent
745281f295
commit
63297e836d
@@ -36,7 +36,7 @@ strtoi_(const char *s, char **restrict endp, int base,
|
||||
if (status == NULL)
|
||||
status = &st;
|
||||
|
||||
if (base != 0 && (base < 0 || base > 36)) {
|
||||
if (base != 0 && (base < 2 || base > 36)) {
|
||||
*status = EINVAL;
|
||||
return MAX(min, MIN(max, 0));
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ strtou_(const char *s, char **restrict endp, int base,
|
||||
if (status == NULL)
|
||||
status = &st;
|
||||
|
||||
if (base != 0 && (base < 0 || base > 36)) {
|
||||
if (base != 0 && (base < 2 || base > 36)) {
|
||||
*status = EINVAL;
|
||||
return MAX(min, 0);
|
||||
}
|
||||
|
||||
@@ -46,6 +46,9 @@ test_strtoi(void **state)
|
||||
assert_true(strtoi_("42", NULL, -1, 1, 2, &status) == 1);
|
||||
assert_true(status == EINVAL);
|
||||
|
||||
assert_true(strtoi_("42", NULL, 1, 1, 2, &status) == 1);
|
||||
assert_true(status == EINVAL);
|
||||
|
||||
assert_true(strtoi_("40", &end, 5, INTMAX_MIN, INTMAX_MAX, &status) == 20);
|
||||
assert_true(status == 0);
|
||||
assert_true(strcmp(end, "") == 0);
|
||||
@@ -84,6 +87,9 @@ test_strtou(void **state)
|
||||
assert_true(strtou_("42", NULL, -1, 1, 2, &status) == 1);
|
||||
assert_true(status == EINVAL);
|
||||
|
||||
assert_true(strtou_("42", NULL, 1, 1, 2, &status) == 1);
|
||||
assert_true(status == EINVAL);
|
||||
|
||||
assert_true(strtou_("40", &end, 5, 0, UINTMAX_MAX, &status) == 20);
|
||||
assert_true(status == 0);
|
||||
assert_true(strcmp(end, "") == 0);
|
||||
@@ -123,6 +129,10 @@ test_strtou_noneg(void **state)
|
||||
== 1);
|
||||
assert_true(status == EINVAL);
|
||||
|
||||
assert_true(strtou_noneg("42", NULL, 1, 1, 2, &status)
|
||||
== 1);
|
||||
assert_true(status == EINVAL);
|
||||
|
||||
assert_true(strtou_noneg("40", &end, 5, 0, UINTMAX_MAX, &status)
|
||||
== 20);
|
||||
assert_true(status == 0);
|
||||
|
||||
Reference in New Issue
Block a user