diff options
author | Joao Marcos Costa <jmcosta944@gmail.com> | 2021-05-17 18:20:38 -0300 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2021-06-09 20:58:20 -0400 |
commit | 0008d8086649d3bb3afd0c4697f5b73ccf6f293d (patch) | |
tree | 8572f724010c17e834adfe1e6f01f8712a204736 /board/kmc | |
parent | 46704165f53a7e324b95313e20e928c3a8b93261 (diff) | |
download | u-boot-0008d8086649d3bb3afd0c4697f5b73ccf6f293d.tar.gz u-boot-0008d8086649d3bb3afd0c4697f5b73ccf6f293d.tar.xz u-boot-0008d8086649d3bb3afd0c4697f5b73ccf6f293d.zip |
fs/squashfs: fix reading of fragmented files
The fragmented files were not correctly read because of two issues:
- The squashfs_file_info struct has a field named 'comp', which tells if
the file's fragment is compressed or not. This field was always set to
'true' in sqfs_get_regfile_info and sqfs_get_lregfile_info. It should
actually take sqfs_frag_lookup's return value. This patch addresses
these two assignments.
- In sqfs_read, the fragments (compressed or not) were copied to the
output buffer through a for loop which was reading data at the wrong
offset. Replace these loops by equivalent calls to memcpy, with the
right parameters.
I tested this patch by comparing the MD5 checksum of a few fragmented
files with the respective md5sum output in sandbox, considering both
compressed and uncompressed fragments.
Signed-off-by: Joao Marcos Costa <jmcosta944@gmail.com>
Tested-by: Richard Genoud <richard.genoud@posteo.net>
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
Diffstat (limited to 'board/kmc')
0 files changed, 0 insertions, 0 deletions