src/java.base/unix/native/libjava/jni_util_md.c

Print this page

        

*** 28,37 **** --- 28,43 ---- #include "jni.h" #include "jni_util.h" #include "dlfcn.h" + #if defined(LINUX) && (defined(_GNU_SOURCE) || \ + (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE < 200112L \ + && defined(_XOPEN_SOURCE) && _XOPEN_SOURCE < 600)) + #define strerror_r(a, b, c) __xpg_strerror_r((a), (b), (c)) + #endif + void* getProcessHandle() { static void *procHandle = NULL; if (procHandle != NULL) { return procHandle; }
*** 53,70 **** } size_t getLastErrorString(char *buf, size_t len) { - char *err; - size_t n; if (errno == 0 || len < 1) return 0; ! err = strerror(errno); ! n = strlen(err); ! if (n >= len) ! n = len - 1; ! ! strncpy(buf, err, n); ! buf[n] = '\0'; ! return n; } --- 59,74 ---- } size_t getLastErrorString(char *buf, size_t len) { if (errno == 0 || len < 1) return 0; + getErrorString(errno, buf, len); + return strlen(buf); + } ! int ! getErrorString(int err, char *buf, size_t len) ! { ! if (err == 0 || len < 1) return 0; ! return strerror_r(err, buf, len); }