Merge "[incfs] Fix the block size calculation in .so extraction" into rvc-dev am: 3e188ae81d am: e1190ade73 am: 8ce03675f4

Change-Id: I0982f8397985dcc976b03b3d85d1ed94bdfa55d7
This commit is contained in:
TreeHugger Robot
2020-04-15 16:57:33 +00:00
committed by Automerger Merge Worker

View File

@@ -1333,13 +1333,13 @@ void IncrementalService::extractZipFile(const IfsMountPtr& ifs, ZipArchiveHandle
std::vector<IncFsDataBlock> instructions(numBlocks); std::vector<IncFsDataBlock> instructions(numBlocks);
auto remainingData = std::span(libData.get(), entry.uncompressed_length); auto remainingData = std::span(libData.get(), entry.uncompressed_length);
for (int i = 0; i < numBlocks; i++) { for (int i = 0; i < numBlocks; i++) {
const auto blockSize = std::min<uint16_t>(constants().blockSize, remainingData.size()); const auto blockSize = std::min<long>(constants().blockSize, remainingData.size());
instructions[i] = IncFsDataBlock{ instructions[i] = IncFsDataBlock{
.fileFd = writeFd.get(), .fileFd = writeFd.get(),
.pageIndex = static_cast<IncFsBlockIndex>(i), .pageIndex = static_cast<IncFsBlockIndex>(i),
.compression = INCFS_COMPRESSION_KIND_NONE, .compression = INCFS_COMPRESSION_KIND_NONE,
.kind = INCFS_BLOCK_KIND_DATA, .kind = INCFS_BLOCK_KIND_DATA,
.dataSize = blockSize, .dataSize = static_cast<uint32_t>(blockSize),
.data = reinterpret_cast<const char*>(remainingData.data()), .data = reinterpret_cast<const char*>(remainingData.data()),
}; };
remainingData = remainingData.subspan(blockSize); remainingData = remainingData.subspan(blockSize);