summaryrefslogtreecommitdiff
path: root/payload_generator/squashfs_filesystem.cc
diff options
context:
space:
mode:
Diffstat (limited to 'payload_generator/squashfs_filesystem.cc')
-rw-r--r--payload_generator/squashfs_filesystem.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/payload_generator/squashfs_filesystem.cc b/payload_generator/squashfs_filesystem.cc
index 98387949..234a5878 100644
--- a/payload_generator/squashfs_filesystem.cc
+++ b/payload_generator/squashfs_filesystem.cc
@@ -166,6 +166,7 @@ bool SquashfsFilesystem::Init(const string& map,
uint64_t start;
TEST_AND_RETURN_FALSE(base::StringToUint64(splits[1], &start));
uint64_t cur_offset = start;
+ bool is_compressed = false;
for (size_t i = 2; i < splits.size(); ++i) {
uint64_t blk_size;
TEST_AND_RETURN_FALSE(base::StringToUint64(splits[i], &blk_size));
@@ -173,10 +174,11 @@ bool SquashfsFilesystem::Init(const string& map,
auto new_blk_size = blk_size & ~kSquashfsCompressedBit;
TEST_AND_RETURN_FALSE(new_blk_size <= header.block_size);
if (new_blk_size > 0 && !(blk_size & kSquashfsCompressedBit)) {
- // Compressed block
+ // It is a compressed block.
if (is_zlib && extract_deflates) {
zlib_blks.emplace_back(cur_offset, new_blk_size);
}
+ is_compressed = true;
}
cur_offset += new_blk_size;
}
@@ -186,6 +188,7 @@ bool SquashfsFilesystem::Init(const string& map,
File file;
file.name = splits[0].as_string();
file.extents = {ExtentForBytes(kBlockSize, start, cur_offset - start)};
+ file.is_compressed = is_compressed;
files_.emplace_back(file);
}
}