aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKelvin Zhang <zhangkelvin@google.com>2022-04-19 03:49:21 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-04-19 03:49:21 +0000
commitd063f65ebace84cc094d543bd96a675aab63f459 (patch)
tree16a3fc37ea924893d22684c3e834c4522cdc624b
parent3af19063bd0f0ac0b5830d8ab8dc4f922bcaf7fb (diff)
parent5dc80516a0f4f01939560f770c93e5dd9c8fedb4 (diff)
downloadpuffin-d063f65ebace84cc094d543bd96a675aab63f459.tar.gz
Skip last incomplete gzip entry am: 3353fd4997 am: b075d6a5ca am: 4bd5e5059b am: 6ff499cf9f am: 5dc80516a0
Original change: https://android-review.googlesource.com/c/platform/external/puffin/+/2065372 Change-Id: Iae470c96019ee9a50c1b02b143773f2fccb557fb Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--src/utils.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/utils.cc b/src/utils.cc
index b2666d3..23d8479 100644
--- a/src/utils.cc
+++ b/src/utils.cc
@@ -185,7 +185,7 @@ bool IsValidGzipHeader(const uint8_t* header, size_t size) {
// 0 1 0x1F
// 1 1 0x8B
// 2 1 compression method (8 denotes deflate)
- static const uint8_t magic[] = {0x1F, 0x8B, 8};
+ static constexpr uint8_t magic[] = {0x1F, 0x8B, 8};
return size >= 10 && std::equal(std::begin(magic), std::end(magic), header);
}
} // namespace
@@ -240,10 +240,10 @@ bool LocateDeflatesInGzip(const Buffer& data, vector<BitExtent>* deflates) {
offset += compressed_size;
// Ignore CRC32 and uncompressed size.
- TEST_AND_RETURN_FALSE(offset + 8 <= data.size());
offset += 8;
member_start = offset;
- } while (IsValidGzipHeader(&data[member_start], data.size() - member_start));
+ } while (member_start < data.size() &&
+ IsValidGzipHeader(&data[member_start], data.size() - member_start));
return true;
}