Merge tag 'efi-2020-07-rc4' of https://gitlab.denx.de/u-boot/custodians/u-boot-efi
[oweals/u-boot.git] / lib / errno_str.c
index 0ba950e97030f4fdfbb2383f86ec29eed9a19a3b..2e5f4a887d5b0f1351ba0765b8bbd096d7c7e2e3 100644 (file)
@@ -13,7 +13,7 @@
 static const char * const errno_message[] = {
        ERRNO_MSG(0, "Success"),
        ERRNO_MSG(EPERM, "Operation not permitted"),
-       ERRNO_MSG(ENOEN, "No such file or directory"),
+       ERRNO_MSG(ENOENT, "No such file or directory"),
        ERRNO_MSG(ESRCH, "No such process"),
        ERRNO_MSG(EINTR, "Interrupted system call"),
        ERRNO_MSG(EIO, "I/O error"),
@@ -26,7 +26,7 @@ static const char * const errno_message[] = {
        ERRNO_MSG(ENOMEM, "Out of memory"),
        ERRNO_MSG(EACCES, "Permission denied"),
        ERRNO_MSG(EFAULT, "Bad address"),
-       ERRNO_MSG(ENOTBL, "Block device required"),
+       ERRNO_MSG(ENOTBLK, "Block device required"),
        ERRNO_MSG(EBUSY, "Device or resource busy"),
        ERRNO_MSG(EEXIST, "File exists"),
        ERRNO_MSG(EXDEV, "Cross-device link"),
@@ -136,6 +136,8 @@ static const char * const errno_message[] = {
        ERRNO_MSG(EDQUOT, "Quota exceeded"),
        ERRNO_MSG(ENOMEDIUM, "No medium found"),
        ERRNO_MSG(EMEDIUMTYPE, "Wrong medium type"),
+       /* Message for unsupported error numbers */
+       ERRNO_MSG(0, "Unknown error"),
 };
 
 const char *errno_str(int errno)
@@ -143,5 +145,9 @@ const char *errno_str(int errno)
        if (errno >= 0)
                return errno_message[0];
 
-       return errno_message[abs(errno)];
+       errno = -errno;
+       if (errno >= ARRAY_SIZE(errno_message))
+               errno = ARRAY_SIZE(errno_message) - 1;
+
+       return errno_message[errno];
 }