diff options
author | MÃ¥rten Kongstad <marten.kongstad@sony.com> | 2019-09-26 15:03:50 +0200 |
---|---|---|
committer | Todd Kennedy <toddke@google.com> | 2019-09-26 14:37:50 -0700 |
commit | 0955d208a2ae62fb676567f46eb0d7f238b2573a (patch) | |
tree | fe49ff5c26367786c87ca47d927171bcc1a863b8 /cmds/idmap2/libidmap2/ZipFile.cpp | |
parent | e2415eeea0c43259bb86e34613d84d4014fc8fbe (diff) |
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
Diffstat (limited to 'cmds/idmap2/libidmap2/ZipFile.cpp')
-rw-r--r-- | cmds/idmap2/libidmap2/ZipFile.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/cmds/idmap2/libidmap2/ZipFile.cpp b/cmds/idmap2/libidmap2/ZipFile.cpp index 4f5e3a45f183..1e1a218163f0 100644 --- a/cmds/idmap2/libidmap2/ZipFile.cpp +++ b/cmds/idmap2/libidmap2/ZipFile.cpp @@ -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)); |