Our strerror_r(3) returns int, not char *. This fixes bogus error messages

like "Cannot stat: (null)"

Reported by:    bde, kris
This commit is contained in:
sobomax 2002-06-16 12:35:17 +00:00
parent fd67d75e4d
commit 8c4cde6179

View File

@ -19,6 +19,8 @@
/* Written by David MacKenzie <djm@gnu.ai.mit.edu>. */
/* $FreeBSD$ */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
@ -188,7 +190,10 @@ error_tail (int status, int errnum, const char *message, va_list args)
{
# if defined HAVE_STRERROR_R || _LIBC
char errbuf[1024];
char *s = __strerror_r (errnum, errbuf, sizeof errbuf);
/* Don't use __strerror_r's return value because on some systems
(at least DEC UNIX 4.0[A-D]) strerror_r returns `int'. */
(void)__strerror_r (errnum, errbuf, sizeof errbuf);
char *s = errbuf;
# if _LIBC && USE_IN_LIBIO
if (_IO_fwide (stderr, 0) > 0)
__fwprintf (stderr, L": %s", s);