src/java.base/share/native/libzip/zip_util.c
Print this page
@@ -1436,10 +1436,11 @@
*/
jboolean JNICALL
ZIP_ReadEntry(jzfile *zip, jzentry *entry, unsigned char *buf, char *entryname)
{
char *msg;
+ char tmpbuf[1024];
strcpy(entryname, entry->name);
if (entry->csize == 0) {
/* Entry is stored */
jlong pos = 0;
@@ -1454,12 +1455,15 @@
ZIP_Lock(zip);
n = ZIP_Read(zip, entry, pos, buf, count);
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) {
+ getErrorString(errno, tmpbuf, sizeof(tmpbuf));
+ msg = tmpbuf;
+ }
+ jio_fprintf(stderr, "%s: %s\n", zip->name, msg);
return JNI_FALSE;
}
buf += n;
pos += n;
}
@@ -1468,12 +1472,15 @@
int ok = InflateFully(zip, entry, buf, &msg);
if (!ok) {
if ((msg == NULL) || (*msg == 0)) {
msg = zip->msg;
}
- jio_fprintf(stderr, "%s: %s\n", zip->name,
- msg != 0 ? msg : strerror(errno));
+ if (msg == 0) {
+ getErrorString(errno, tmpbuf, sizeof(tmpbuf));
+ msg = tmpbuf;
+ }
+ jio_fprintf(stderr, "%s: %s\n", zip->name, msg);
return JNI_FALSE;
}
}
ZIP_FreeEntry(zip, entry);