提交 02e8a824 编写于 作者: H Heinrich Schuchardt 提交者: Tom Rini

lib: errno: check for unsupported error number

If errno_str() is called with an unsupported error number, do not return a
random pointer but a reasonable text.
Signed-off-by: NHeinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: NSimon Glass <sjg@chromium.org>
上级 80e7e7c2
......@@ -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];
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册