diff options
Diffstat (limited to 'payloads/libpayload/libc/string.c')
-rw-r--r-- | payloads/libpayload/libc/string.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/payloads/libpayload/libc/string.c b/payloads/libpayload/libc/string.c index 8c6ea99115..cfa0b4ada4 100644 --- a/payloads/libpayload/libc/string.c +++ b/payloads/libpayload/libc/string.c @@ -32,6 +32,7 @@ #include <libpayload.h> #include <string.h> #include <ctype.h> +#include <inttypes.h> #include <errno.h> /** @@ -486,9 +487,9 @@ long atol(const char *nptr) * @return An unsigned integer representation of the string */ -unsigned long int strtoul(const char *ptr, char **endptr, int base) +unsigned long long int strtoull(const char *ptr, char **endptr, int base) { - int ret = 0; + unsigned long long int ret = 0; if (endptr != NULL) *endptr = (char *) ptr; @@ -535,6 +536,14 @@ unsigned long int strtoul(const char *ptr, char **endptr, int base) return ret; } +unsigned long int strtoul(const char *ptr, char **endptr, int base) +{ + unsigned long long val = strtoull(ptr, endptr, base); + if (val > UINT32_MAX) return UINT32_MAX; + return val; +} + + /** * Determine the number of leading characters in s that match characters in a * @param s A pointer to the string to analyse |