On Wed, Oct 19, 2016 at 09:34:16AM -0600, Theo de Raadt wrote:
> Inside strerror_r, I'm unsure why there is a save_errno dance.
That is from the time when we had national language support.
ok?
bluhm
Index: lib/libc/string/strerror_r.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/lib/libc/string/strerror_r.c,v
retrieving revision 1.12
diff -u -p -r1.12 strerror_r.c
--- lib/libc/string/strerror_r.c 25 Oct 2015 10:22:09 -0000 1.12
+++ lib/libc/string/strerror_r.c 19 Oct 2016 15:57:45 -0000
@@ -85,15 +85,13 @@ __num2string(int num, int sign, int seti
int
strerror_r(int errnum, char *strerrbuf, size_t buflen)
{
- int save_errno;
int ret_errno;
- save_errno = errno;
-
ret_errno = __num2string(errnum, 1, 1, strerrbuf, buflen,
sys_errlist, sys_nerr, UPREFIX);
- errno = ret_errno ? ret_errno : save_errno;
+ if (ret_errno)
+ errno = ret_errno;
return (ret_errno);
}
DEF_WEAK(strerror_r);