summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-04-08 23:04:35 +0200
committerRémi Verschelde <rverschelde@gmail.com>2024-04-08 23:04:35 +0200
commit3d382c16ab2ffa093ba65b19e5653b81584ddf23 (patch)
treeb1138b8020315fad8fde12c39101efd87b15c354
parentdd926b9132c2f755b6f310fcd0aecaa441e123c5 (diff)
parent2dad2fbce2db76d27dc2504c34aedf302ef0a74f (diff)
downloadredot-engine-3d382c16ab2ffa093ba65b19e5653b81584ddf23.tar.gz
Merge pull request #90404 from aaronp64/zipreader_empty_error
Fix `ZIPReader.get_files()` error on empty zip files
-rw-r--r--modules/zip/zip_reader.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/modules/zip/zip_reader.cpp b/modules/zip/zip_reader.cpp
index f4a92dce5b..123d1e5d46 100644
--- a/modules/zip/zip_reader.cpp
+++ b/modules/zip/zip_reader.cpp
@@ -58,7 +58,14 @@ Error ZIPReader::close() {
PackedStringArray ZIPReader::get_files() {
ERR_FAIL_COND_V_MSG(fa.is_null(), PackedStringArray(), "ZIPReader must be opened before use.");
- int err = unzGoToFirstFile(uzf);
+ unz_global_info gi;
+ int err = unzGetGlobalInfo(uzf, &gi);
+ ERR_FAIL_COND_V(err != UNZ_OK, PackedStringArray());
+ if (gi.number_entry == 0) {
+ return PackedStringArray();
+ }
+
+ err = unzGoToFirstFile(uzf);
ERR_FAIL_COND_V(err != UNZ_OK, PackedStringArray());
List<String> s;