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

@@ -98,6 +98,9 @@ long long simple_strtoll(const char *cp, char **endp, unsigned int base);
* Given a string this finds a trailing number on the string and returns it.
* For example, "abc123" would return 123.
*
* Note that this does not handle a string without a prefix. See dectoul() for
* that case.
*
* @str: String to examine
* Return: trailing number if found, else -1
*/