idmap2: ZipFile::Open: fix potential memory leak

Even if OpenArchive in libziparchive returns a non-zero value
(indicating failure), it will have allocated memory that needs to be
freed via CloseArchive. Add the missing call.

Test: valgrind --leak-check=full --show-leak-kinds=all --error-exitcode=1 $ANDROID_HOST_OUT/nativetest64/idmap2_tests/idmap2_tests
Change-Id: I92d47459c27e62ba4544327d7b7f3c4106e6ad34
This commit is contained in:
Mårten Kongstad
2019-09-26 15:03:50 +02:00
committed by Todd Kennedy
parent e2415eeea0
commit 0955d208a2

View File

@@ -34,6 +34,7 @@ std::unique_ptr<const ZipFile> ZipFile::Open(const std::string& path) {
::ZipArchiveHandle handle;
int32_t status = ::OpenArchive(path.c_str(), &handle);
if (status != 0) {
::CloseArchive(handle);
return nullptr;
}
return std::unique_ptr<ZipFile>(new ZipFile(handle));