Merge "[incfs] Fix the block size calculation in .so extraction" into rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
3e188ae81d
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user