summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--payloads/libpayload/include/string.h5
-rw-r--r--payloads/libpayload/libc/string.c14
2 files changed, 17 insertions, 2 deletions
diff --git a/payloads/libpayload/include/string.h b/payloads/libpayload/include/string.h
index 9e4f791a7d..952261fa15 100644
--- a/payloads/libpayload/include/string.h
+++ b/payloads/libpayload/include/string.h
@@ -63,8 +63,9 @@ char *strstr(const char *h, const char *n);
char *strsep(char **stringp, const char *delim);
size_t strspn(const char *s, const char *a);
size_t strcspn(const char *s, const char *a);
-char* strtok(char *str, const char *delim);
-char* strtok_r(char *str, const char *delim, char **ptr);
+char *strtok(char *str, const char *delim);
+char *strtok_r(char *str, const char *delim, char **ptr);
+char *strerror(int errnum);
/** @} */
/**
diff --git a/payloads/libpayload/libc/string.c b/payloads/libpayload/libc/string.c
index 6151164d68..71dd1a6d1b 100644
--- a/payloads/libpayload/libc/string.c
+++ b/payloads/libpayload/libc/string.c
@@ -639,3 +639,17 @@ void perror(const char *s)
{
printf("%s: %d\n", s?s:"(none)", errno);
}
+
+/**
+ * Get a message string describing the given error number.
+ *
+ * @param errnum The error number to be interpreted
+ * @return A pointer to a string describing the given error number
+ */
+char *strerror(int errnum)
+{
+ /* Reserve enough space for the string below + INT64_MIN in decimal + \0 */
+ static char errstr[35];
+ snprintf(errstr, sizeof(errstr), "Unknown error %d", errnum);
+ return errstr;
+}