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

Print this page

        

*** 106,122 **** if (utf16_osErrorMsg[n - 1] == L'.') --n; utf16_osErrorMsg[n] = L'\0'; } } else if (errno != 0) { // C runtime error that has no corresponding WIN32 error code ! const WCHAR *rtError = _wcserror(errno); ! if (rtError != NULL) { ! wcsncpy(utf16_osErrorMsg, rtError, cbErrorMsg); ! // truncate if too long ! utf16_osErrorMsg[cbErrorMsg - 1] = L'\0'; n = wcslen(utf16_osErrorMsg); - } } else noError = TRUE; //OS has no error to report if (!noError) { if (n > 0) { --- 106,118 ---- if (utf16_osErrorMsg[n - 1] == L'.') --n; utf16_osErrorMsg[n] = L'\0'; } } else if (errno != 0) { // C runtime error that has no corresponding WIN32 error code ! int ret = _wcserror_s(utf16_osErrorMsg, cbErrorMsg, errno); ! if (ret == 0) n = wcslen(utf16_osErrorMsg); } else noError = TRUE; //OS has no error to report if (!noError) { if (n > 0) {
*** 144,149 **** --- 140,154 ---- } free(utf16_osErrorMsg); } } return n; + } + + int + getErrorString(int err, char *buf, size_t len) + { + int ret = 0; + if (err == 0 || len < 1) return 0; + ret = strerror_s(buf, len, err); + return ret; }