diff --git a/SSZipArchive/minizip/unzip.c b/SSZipArchive/minizip/unzip.c index 2aff589..19fdb38 100644 --- a/SSZipArchive/minizip/unzip.c +++ b/SSZipArchive/minizip/unzip.c @@ -1297,9 +1297,12 @@ extern int ZEXPORT unzReadCurrentFile(unzFile file, voidp buf, uint32_t len) s->pfile_in_zip_read->stream.next_out = (uint8_t*)buf; s->pfile_in_zip_read->stream.avail_out = (uint16_t)len; - if (len > s->pfile_in_zip_read->rest_read_compressed + s->pfile_in_zip_read->stream.avail_in) - s->pfile_in_zip_read->stream.avail_out = (uint16_t)s->pfile_in_zip_read->rest_read_compressed + - s->pfile_in_zip_read->stream.avail_in; + if ((s->pfile_in_zip_read->compression_method == 0) || (s->pfile_in_zip_read->raw)) + { + if (len > s->pfile_in_zip_read->rest_read_compressed + s->pfile_in_zip_read->stream.avail_in) + s->pfile_in_zip_read->stream.avail_out = (uint16_t)s->pfile_in_zip_read->rest_read_compressed + + s->pfile_in_zip_read->stream.avail_in; + } do {