lib/atoi/strtoi/, tests/: strto[iu]_(): 1 is an invalid base

Signed-off-by: Alejandro Colomar <alx@kernel.org>
This commit is contained in:
Alejandro Colomar
2024-06-30 03:00:40 +02:00
committed by Serge Hallyn
parent 745281f295
commit 63297e836d
3 changed files with 12 additions and 2 deletions
+1 -1
View File
@@ -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));
}
+1 -1
View File
@@ -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);
}
+10
View File
@@ -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);