diff options
author | guenther <> | 2015-09-06 20:26:20 +0000 |
---|---|---|
committer | guenther <> | 2015-09-06 20:26:20 +0000 |
commit | 546626ef931a8053872c26e20dad7feab1cdee2e (patch) | |
tree | 46026ef654b47784daf9e08ec5d03de411dfb58f /src/lib/libc/string | |
parent | 9bd9ea1e2dcdaad0b3a64cf0240acfa7c885f4d2 (diff) | |
download | openbsd-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.c | 10 |
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 | ||
66 | static int | 62 | static 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); | |||
129 | char * | 125 | char * |
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 | } |