From: ericb Date: Mon, 23 May 2011 20:43:05 +0000 (+0000) Subject: strerror: match recent glibc changes X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=6edb6f7a8fb65305ba4bce1aad146f66c6f4fac5;p=pf3gnuchains%2Fpf3gnuchains4x.git strerror: match recent glibc changes * errno.cc (strerror): Print unknown errno as int. (__xpg_strerror_r): Likewise, and don't clobber strerror buffer. --- diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index cb051bf6da..35b7eea7e6 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2011-05-23 Eric Blake + + * errno.cc (strerror): Print unknown errno as int. + (__xpg_strerror_r): Likewise, and don't clobber strerror buffer. + 2011-05-23 Corinna Vinschen * fhandler_process.cc (thread_info::fill_if_match): Reformat. diff --git a/winsup/cygwin/errno.cc b/winsup/cygwin/errno.cc index e881fc6495..aa311b7e2d 100644 --- a/winsup/cygwin/errno.cc +++ b/winsup/cygwin/errno.cc @@ -382,8 +382,8 @@ strerror (int errnum) char *errstr = strerror_worker (errnum); if (!errstr) { - __small_sprintf (errstr = _my_tls.locals.strerror_buf, "Unknown error %u", - (unsigned) errnum); + __small_sprintf (errstr = _my_tls.locals.strerror_buf, "Unknown error %d", + errnum); errno = _impure_ptr->_errno = EINVAL; } return errstr; @@ -409,10 +409,10 @@ __xpg_strerror_r (int errnum, char *buf, size_t n) return ERANGE; int result = 0; char *error = strerror_worker (errnum); + char tmp[sizeof "Unknown error -2147483648"]; if (!error) { - __small_sprintf (error = _my_tls.locals.strerror_buf, "Unknown error %u", - (unsigned) errnum); + __small_sprintf (error = tmp, "Unknown error %d", errnum); result = EINVAL; } if (strlen (error) >= n)