--- old/src/java.base/share/native/libzip/zip_util.c Mon Sep 21 16:48:36 2015 +++ new/src/java.base/share/native/libzip/zip_util.c Mon Sep 21 16:48:35 2015 @@ -37,6 +37,7 @@ #include #include +#include "jdk_strerror.h" #include "jni.h" #include "jni_util.h" #include "jlong.h" @@ -1438,6 +1439,7 @@ ZIP_ReadEntry(jzfile *zip, jzentry *entry, unsigned char *buf, char *entryname) { char *msg; + char tmpbuf[1024]; strcpy(entryname, entry->name); if (entry->csize == 0) { @@ -1456,8 +1458,11 @@ msg = zip->msg; ZIP_Unlock(zip); if (n == -1) { - jio_fprintf(stderr, "%s: %s\n", zip->name, - msg != 0 ? msg : strerror(errno)); + if (msg == 0) { + jdk_strerror(errno, tmpbuf, (size_t) 1024); + msg = tmpbuf; + } + jio_fprintf(stderr, "%s: %s\n", zip->name, msg); return JNI_FALSE; } buf += n; @@ -1470,8 +1475,11 @@ if ((msg == NULL) || (*msg == 0)) { msg = zip->msg; } - jio_fprintf(stderr, "%s: %s\n", zip->name, - msg != 0 ? msg : strerror(errno)); + if (msg == 0) { + jdk_strerror(errno, tmpbuf, (size_t) 1024); + msg = tmpbuf; + } + jio_fprintf(stderr, "%s: %s\n", zip->name, msg); return JNI_FALSE; } }