aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKelvin Zhang <zhangkelvin@google.com>2022-04-19 03:27:09 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-04-19 03:27:09 +0000
commit8094db0efd9a711ea9fa55e98c55859e88b33d7e (patch)
tree16a3fc37ea924893d22684c3e834c4522cdc624b
parent2f927414fd1a8ef3a27a19a768ee05d737772125 (diff)
parent6ff499cf9f327c9503ab028c1ffb60fdd4f7b61a (diff)
downloadpuffin-8094db0efd9a711ea9fa55e98c55859e88b33d7e.tar.gz
Skip last incomplete gzip entry am: 3353fd4997 am: b075d6a5ca am: 4bd5e5059b am: 6ff499cf9f
Original change: https://android-review.googlesource.com/c/platform/external/puffin/+/2065372 Change-Id: I40874c038855cfa3aad82b70bc878482b6fdd28f 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;
}