util.c: strerror_r returns char* only on glibc

This commit is contained in:
Felix Janda 2015-02-03 18:58:02 +01:00
parent 5b8ed5b7c9
commit 008267b9f6

View File

@ -84,7 +84,7 @@ buferror(int err, char *buf, size_t buflen)
FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(), 0,
(LPSTR)buf, buflen, NULL);
return (0);
#elif defined(_GNU_SOURCE)
#elif defined(__GLIBC__) && defined(_GNU_SOURCE)
char *b = strerror_r(err, buf, buflen);
if (b != buf) {
strncpy(buf, b, buflen);