diff options
-rw-r--r-- | payloads/libpayload/include/string.h | 5 | ||||
-rw-r--r-- | payloads/libpayload/libc/string.c | 14 |
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; +} |