summaryrefslogtreecommitdiffstats
path: root/lib/libc/string/strerror_r.c
diff options
context:
space:
mode:
authorguenther <guenther@openbsd.org>2015-09-06 20:26:20 +0000
committerguenther <guenther@openbsd.org>2015-09-06 20:26:20 +0000
commit3f5ad7fc4f4d617f018cba91616b3524bed3020e (patch)
tree6fc23b75d81bf098ba9efb89ff4363d19eb795ee /lib/libc/string/strerror_r.c
parentUINT_MAX would overflow the integer calculation later on, leading to (diff)
downloadwireguard-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.c10
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;
}