summaryrefslogtreecommitdiff
path: root/src/lib/libc/string
diff options
context:
space:
mode:
authorguenther <>2015-09-06 20:26:20 +0000
committerguenther <>2015-09-06 20:26:20 +0000
commit546626ef931a8053872c26e20dad7feab1cdee2e (patch)
tree46026ef654b47784daf9e08ec5d03de411dfb58f /src/lib/libc/string
parent9bd9ea1e2dcdaad0b3a64cf0240acfa7c885f4d2 (diff)
downloadopenbsd-546626ef931a8053872c26e20dad7feab1cdee2e.tar.gz
openbsd-546626ef931a8053872c26e20dad7feab1cdee2e.tar.bz2
openbsd-546626ef931a8053872c26e20dad7feab1cdee2e.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 'src/lib/libc/string')
-rw-r--r--src/lib/libc/string/strerror_r.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/src/lib/libc/string/strerror_r.c b/src/lib/libc/string/strerror_r.c
index 2262cb512d..8a15ff1afc 100644
--- a/src/lib/libc/string/strerror_r.c
+++ b/src/lib/libc/string/strerror_r.c
@@ -1,14 +1,10 @@
1/* $OpenBSD: strerror_r.c,v 1.10 2015/09/05 11:25:30 guenther Exp $ */ 1/* $OpenBSD: strerror_r.c,v 1.11 2015/09/06 20:26:20 guenther Exp $ */
2/* Public Domain <marc@snafu.org> */ 2/* Public Domain <marc@snafu.org> */
3 3
4#ifdef NLS 4#ifdef NLS
5#include <nl_types.h> 5#include <nl_types.h>
6#endif 6#endif
7 7
8#define sys_errlist _sys_errlist
9#define sys_nerr _sys_nerr
10#define sys_siglist _sys_siglist
11
12#include <errno.h> 8#include <errno.h>
13#include <limits.h> 9#include <limits.h>
14#include <signal.h> 10#include <signal.h>
@@ -65,7 +61,7 @@ __itoa(int num, int sign, char *buffer, size_t start, size_t end)
65 61
66static int 62static int
67__num2string(int num, int sign, int setid, char *buf, size_t buflen, 63__num2string(int num, int sign, int setid, char *buf, size_t buflen,
68 char * list[], size_t max, const char *def) 64 const char * const list[], size_t max, const char *def)
69{ 65{
70 int ret = 0; 66 int ret = 0;
71 size_t len; 67 size_t len;
@@ -129,7 +125,7 @@ DEF_WEAK(strerror_r);
129char * 125char *
130__strsignal(int num, char *buf) 126__strsignal(int num, char *buf)
131{ 127{
132 __num2string(num, 0, 2, buf, NL_TEXTMAX, (char **)sys_siglist, NSIG, 128 __num2string(num, 0, 2, buf, NL_TEXTMAX, sys_siglist, NSIG,
133 USIGPREFIX); 129 USIGPREFIX);
134 return buf; 130 return buf;
135} 131}