aboutsummaryrefslogtreecommitdiff
path: root/string
diff options
context:
space:
mode:
Diffstat (limited to 'string')
-rw-r--r--string/_strerror.c6
-rw-r--r--string/strerror_l.c8
-rw-r--r--string/xpg-strerror.c9
3 files changed, 7 insertions, 16 deletions
diff --git a/string/_strerror.c b/string/_strerror.c
index af6be56..01226e3 100644
--- a/string/_strerror.c
+++ b/string/_strerror.c
@@ -36,8 +36,8 @@
char *
__strerror_r (int errnum, char *buf, size_t buflen)
{
- if (__builtin_expect (errnum < 0 || errnum >= _sys_nerr_internal
- || _sys_errlist_internal[errnum] == NULL, 0))
+ char *err = (char *) __get_errlist (errnum);
+ if (__glibc_unlikely (err == NULL))
{
/* Buffer we use to print the number in. For a maximum size for
`int' of 8 bytes we never need more than 20 digits. */
@@ -68,7 +68,7 @@ __strerror_r (int errnum, char *buf, size_t buflen)
return buf;
}
- return (char *) _(_sys_errlist_internal[errnum]);
+ return _(err);
}
weak_alias (__strerror_r, strerror_r)
libc_hidden_def (__strerror_r)
diff --git a/string/strerror_l.c b/string/strerror_l.c
index c8c3d4a..309f42e 100644
--- a/string/strerror_l.c
+++ b/string/strerror_l.c
@@ -40,10 +40,8 @@ translate (const char *str, locale_t loc)
char *
strerror_l (int errnum, locale_t loc)
{
-
-
- if (__builtin_expect (errnum < 0 || errnum >= _sys_nerr_internal
- || _sys_errlist_internal[errnum] == NULL, 0))
+ char *err = (char *) __get_errlist (errnum);
+ if (__glibc_unlikely (err == NULL))
{
free (last_value);
if (__asprintf (&last_value, "%s%d",
@@ -53,7 +51,7 @@ strerror_l (int errnum, locale_t loc)
return last_value;
}
- return (char *) translate (_sys_errlist_internal[errnum], loc);
+ return (char *) translate (err, loc);
}
void
diff --git a/string/xpg-strerror.c b/string/xpg-strerror.c
index 5290b63..95311b7 100644
--- a/string/xpg-strerror.c
+++ b/string/xpg-strerror.c
@@ -32,16 +32,9 @@ __xpg_strerror_r (int errnum, char *buf, size_t buflen)
string) if errnum is invalid, otherwise it returns a string whose
storage has indefinite extent. */
if (estr == buf)
- {
- assert (errnum < 0 || errnum >= _sys_nerr_internal
- || _sys_errlist_internal[errnum] == NULL);
- return EINVAL;
- }
+ return EINVAL;
else
{
- assert (errnum >= 0 && errnum < _sys_nerr_internal
- && _sys_errlist_internal[errnum] != NULL);
-
size_t estrlen = strlen (estr);
/* Terminate the string in any case. */