From 2e9bd44bbb8cf6d6d4372d2c8623d7488494b683 Mon Sep 17 00:00:00 2001 From: sekaiacg Date: Sat, 11 Dec 2021 09:28:55 +0800 Subject: [PATCH] recovery: Fix the crash caused by StartIteration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In the new version of libziparchive, the default values ​​of the optional_prefix and optional_suffix parameters of the StartIteration function are changed to empty strings, and nullptr is no longer detected. Change-Id: I66ee58a9515586700b10a3d5aa5b780a6207b33c --- install/ZipUtil.cpp | 2 +- twrpinstall/ZipUtil.cpp | 2 +- twrpinstall/installcommand.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/install/ZipUtil.cpp b/install/ZipUtil.cpp index 75acad9d8..690942ac7 100755 --- a/install/ZipUtil.cpp +++ b/install/ZipUtil.cpp @@ -56,7 +56,7 @@ bool ExtractPackageRecursive(ZipArchiveHandle zip, const std::string& zip_path, } const std::string zip_prefix(prefix_path.c_str()); - int ret = StartIteration(zip, &cookie, zip_prefix, nullptr); + int ret = StartIteration(zip, &cookie, zip_prefix); if (ret != 0) { LOG(ERROR) << "failed to start iterating zip entries."; diff --git a/twrpinstall/ZipUtil.cpp b/twrpinstall/ZipUtil.cpp index f073a229b..321e7a4f1 100755 --- a/twrpinstall/ZipUtil.cpp +++ b/twrpinstall/ZipUtil.cpp @@ -56,7 +56,7 @@ bool ExtractPackageRecursive(ZipArchiveHandle zip, const std::string& zip_path, } const ZipString zip_prefix(prefix_path.c_str()); - int ret = StartIteration(zip, &cookie, &zip_prefix, nullptr); + int ret = StartIteration(zip, &cookie, &zip_prefix); if (ret != 0) { LOG(ERROR) << "failed to start iterating zip entries."; return false; diff --git a/twrpinstall/installcommand.cpp b/twrpinstall/installcommand.cpp index ad7a77279..d577b3838 100755 --- a/twrpinstall/installcommand.cpp +++ b/twrpinstall/installcommand.cpp @@ -302,7 +302,7 @@ bool verify_package_compatibility(ZipArchiveHandle zw) { // Iterate all the entries inside COMPATIBILITY_ZIP_ENTRY and read the contents. void* cookie; - ret = StartIteration(zip_handle, &cookie, nullptr, nullptr); + ret = StartIteration(zip_handle, &cookie); if (ret != 0) { printf("Failed to start iterating zip entries: %s\n", ErrorCodeString(ret)); CloseArchive(zip_handle);