aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuca Stefani <luca.stefani.ge1@gmail.com>2018-08-22 18:56:36 +0200
committerLuca Stefani <luca.stefani.ge1@gmail.com>2018-08-22 18:56:36 +0200
commit9d1f86e09814b88aa6165330410d8d2a9793a432 (patch)
tree8f64befa3144ac4db5d205034494996f5958ef61
parent591bf763f701b8e7c7efdfe0f3c71dcf3490c34b (diff)
downloadandroid_external_p7zip-9d1f86e09814b88aa6165330410d8d2a9793a432.tar.gz
android_external_p7zip-9d1f86e09814b88aa6165330410d8d2a9793a432.tar.bz2
android_external_p7zip-9d1f86e09814b88aa6165330410d8d2a9793a432.zip
Fix CVE-2016-9296
Change-Id: I077703f41e5a930d204228bf2045314f4e7f5d9b
-rw-r--r--CPP/7zip/Archive/7z/7zIn.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/CPP/7zip/Archive/7z/7zIn.cpp b/CPP/7zip/Archive/7z/7zIn.cpp
index b0c6b98..7c6dde2 100644
--- a/CPP/7zip/Archive/7z/7zIn.cpp
+++ b/CPP/7zip/Archive/7z/7zIn.cpp
@@ -1097,7 +1097,8 @@ HRESULT CInArchive::ReadAndDecodePackedStreams(
if (CrcCalc(data, unpackSize) != folders.FolderCRCs.Vals[i])
ThrowIncorrect();
}
- HeadersSize += folders.PackPositions[folders.NumPackStreams];
+ if (folders.PackPositions)
+ HeadersSize += folders.PackPositions[folders.NumPackStreams];
return S_OK;
}