summaryrefslogtreecommitdiff
path: root/payloads/libpayload/libc/string.c
diff options
context:
space:
mode:
Diffstat (limited to 'payloads/libpayload/libc/string.c')
-rw-r--r--payloads/libpayload/libc/string.c13
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