lib: Fix a few bugs in trailing_strtoln()

At present this has a minor bug in that it reads the byte before the
start of the string, if it is empty. Also it doesn't handle a
non-numeric prefix which is only one character long.

Fix these bugs with a reworked implementation. Add a test for the second
case. The first one is hard to test.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass
2022-04-24 23:30:57 -06:00
committed by Tom Rini
parent 4e64cae0a0
commit d667a0d8f4
3 changed files with 11 additions and 5 deletions

View File

@@ -257,6 +257,8 @@ static int str_trailing(struct unit_test_state *uts)
ut_asserteq(123, trailing_strtoln(str1, str1 + 6));
ut_asserteq(-1, trailing_strtoln(str1, str1 + 9));
ut_asserteq(3, trailing_strtol("a3"));
return 0;
}
STR_TEST(str_trailing, 0);