diff --git a/core/io/file_access_zip.cpp b/core/io/file_access_zip.cpp index 4cc2edd1c39..47432b1e97d 100644 --- a/core/io/file_access_zip.cpp +++ b/core/io/file_access_zip.cpp @@ -149,8 +149,7 @@ unzFile ZipArchive::get_file_handle(String p_file) const { unzFile pkg = unzOpen2(packages[file.package].filename.utf8().get_data(), &io); ERR_FAIL_COND_V(!pkg, NULL); int unz_err = unzGoToFilePos(pkg, &file.file_pos); - ERR_FAIL_COND_V(unz_err != UNZ_OK, NULL); - if (unzOpenCurrentFile(pkg) != UNZ_OK) { + if (unz_err != UNZ_OK || unzOpenCurrentFile(pkg) != UNZ_OK) { unzClose(pkg); ERR_FAIL_V(NULL); diff --git a/core/io/pck_packer.cpp b/core/io/pck_packer.cpp index 9dd9b044a2e..974ed642670 100644 --- a/core/io/pck_packer.cpp +++ b/core/io/pck_packer.cpp @@ -172,6 +172,7 @@ Error PCKPacker::flush(bool p_verbose) { printf("\n"); file->close(); + memdelete(buf); return OK; };