From: Daniel Stenberg Date: Thu, 25 Mar 2004 12:45:01 +0000 (+0000) Subject: so there are at least two different strerror_r() versions and our brand X-Git-Tag: curl-7_11_2~191 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=189c2f498987e443836aada953ace7795202e350;p=thirdparty%2Fcurl.git so there are at least two different strerror_r() versions and our brand new configure script detects them and now this code acts according to what API that was detected --- diff --git a/lib/curl_strerror.c b/lib/curl_strerror.c index 0d4ecbef83..5707596036 100644 --- a/lib/curl_strerror.c +++ b/lib/curl_strerror.c @@ -506,10 +506,17 @@ const char *Curl_strerror(struct connectdata *conn, int err) if (err >= 0 && err < sys_nerr) { /* These should be atomic and hopefully thread-safe */ #ifdef HAVE_STRERROR_R +#ifdef HAVE_POSIX_STRERROR_R strerror_r(err, buf, max); /* this may set errno to ERANGE if insufficient storage was supplied via strerrbuf and buflen to contain the generated message string, or EINVAL if the value of errnum is not a valid error number.*/ +#else + /* HAVE_GLIBC_STRERROR_R */ + char buffer[256]; + char *msg = strerror_r(err, buffer, sizeof(buffer)); + strncpy(buf, msg, max); +#endif #else strncpy(buf, strerror(err), max); #endif