diff -urN a/lib/err/errPosix.c b/lib/err/errPosix.c --- a/lib/err/errPosix.c +++ b/lib/err/errPosix.c @@ -31,6 +31,7 @@ #include #include #include +#include #include "vmware.h" #include "errInt.h" @@ -63,11 +64,13 @@ { char *p; -#if defined(__linux__) && !defined(__ANDROID__) +#if defined(__GLIBC__) && !defined(__ANDROID__) p = strerror_r(errorNumber, buf, bufSize); #else - p = strerror(errorNumber); -#endif + if (strerror_r(errorNumber, buf, bufSize) != 0) + snprintf(buf, bufSize, "unknown error %i", errorNumber); + p = buf; +#endif /* defined __GLIBC__ */ ASSERT(p != NULL); return p; }