From 6c65a56d3904335a1ce243f3246e9eb9789d9602 Mon Sep 17 00:00:00 2001 From: Yurii Zubrytskyi Date: Tue, 14 Apr 2020 15:25:49 -0700 Subject: [PATCH] [incfs] Fix the block size calculation in .so extraction Bug: 154044009 Test: adb install megacity.apk && adb shell cat *.so Change-Id: I0069c8cfa74c83810152d917a2bac9cdaf24d6a7 --- services/incremental/IncrementalService.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/incremental/IncrementalService.cpp b/services/incremental/IncrementalService.cpp index 149dfa6be6c4c..f7cc8f5f01415 100644 --- a/services/incremental/IncrementalService.cpp +++ b/services/incremental/IncrementalService.cpp @@ -1337,13 +1337,13 @@ void IncrementalService::extractZipFile(const IfsMountPtr& ifs, ZipArchiveHandle std::vector instructions(numBlocks); auto remainingData = std::span(libData.get(), entry.uncompressed_length); for (int i = 0; i < numBlocks; i++) { - const auto blockSize = std::min(constants().blockSize, remainingData.size()); + const auto blockSize = std::min(constants().blockSize, remainingData.size()); instructions[i] = IncFsDataBlock{ .fileFd = writeFd.get(), .pageIndex = static_cast(i), .compression = INCFS_COMPRESSION_KIND_NONE, .kind = INCFS_BLOCK_KIND_DATA, - .dataSize = blockSize, + .dataSize = static_cast(blockSize), .data = reinterpret_cast(remainingData.data()), }; remainingData = remainingData.subspan(blockSize);