diff options
author | 2015-09-06 20:26:20 +0000 | |
---|---|---|
committer | 2015-09-06 20:26:20 +0000 | |
commit | 3f5ad7fc4f4d617f018cba91616b3524bed3020e (patch) | |
tree | 6fc23b75d81bf098ba9efb89ff4363d19eb795ee /lib/libc/string/strerror_r.c | |
parent | UINT_MAX would overflow the integer calculation later on, leading to (diff) | |
download | wireguard-openbsd-3f5ad7fc4f4d617f018cba91616b3524bed3020e.tar.xz wireguard-openbsd-3f5ad7fc4f4d617f018cba91616b3524bed3020e.zip |
Fix aliasing of sys_errlist, sys_nerr, sys_siglist, and sys_signame
to eliminate duplicate copies of the tables and get direct access internally
ok kettenis@ deraadt@
Diffstat (limited to 'lib/libc/string/strerror_r.c')
-rw-r--r-- | lib/libc/string/strerror_r.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/lib/libc/string/strerror_r.c b/lib/libc/string/strerror_r.c index 2262cb512d5..8a15ff1afc4 100644 --- a/lib/libc/string/strerror_r.c +++ b/lib/libc/string/strerror_r.c @@ -1,14 +1,10 @@ -/* $OpenBSD: strerror_r.c,v 1.10 2015/09/05 11:25:30 guenther Exp $ */ +/* $OpenBSD: strerror_r.c,v 1.11 2015/09/06 20:26:20 guenther Exp $ */ /* Public Domain <marc@snafu.org> */ #ifdef NLS #include <nl_types.h> #endif -#define sys_errlist _sys_errlist -#define sys_nerr _sys_nerr -#define sys_siglist _sys_siglist - #include <errno.h> #include <limits.h> #include <signal.h> @@ -65,7 +61,7 @@ __itoa(int num, int sign, char *buffer, size_t start, size_t end) static int __num2string(int num, int sign, int setid, char *buf, size_t buflen, - char * list[], size_t max, const char *def) + const char * const list[], size_t max, const char *def) { int ret = 0; size_t len; @@ -129,7 +125,7 @@ DEF_WEAK(strerror_r); char * __strsignal(int num, char *buf) { - __num2string(num, 0, 2, buf, NL_TEXTMAX, (char **)sys_siglist, NSIG, + __num2string(num, 0, 2, buf, NL_TEXTMAX, sys_siglist, NSIG, USIGPREFIX); return buf; } |