src/java.base/unix/native/libnio/fs/UnixNativeDispatcher.c
Print this page
@@ -64,10 +64,11 @@
#define lstat64 lstat
#define dirent64 dirent
#define readdir64_r readdir_r
#endif
+#include "jdk_strerror.h"
#include "jni.h"
#include "jni_util.h"
#include "jlong.h"
#include "sun_nio_fs_UnixNativeDispatcher.h"
@@ -313,25 +314,19 @@
}
JNIEXPORT jbyteArray
Java_sun_nio_fs_UnixNativeDispatcher_strerror(JNIEnv* env, jclass this, jint error)
{
- char* msg;
+ char buf[1024];
jsize len;
jbyteArray bytes;
-#ifdef _AIX
- /* strerror() is not thread-safe on AIX so we have to use strerror_r() */
- char buffer[256];
- msg = (strerror_r((int)error, buffer, 256) == 0) ? buffer : "Error while calling strerror_r";
-#else
- msg = strerror((int)error);
-#endif
- len = strlen(msg);
+ jdk_strerror((int)error, buf, (size_t) 1024);
+ len = strlen(buf);
bytes = (*env)->NewByteArray(env, len);
if (bytes != NULL) {
- (*env)->SetByteArrayRegion(env, bytes, 0, len, (jbyte*)msg);
+ (*env)->SetByteArrayRegion(env, bytes, 0, len, (jbyte*)buf);
}
return bytes;
}
JNIEXPORT jint