Skip to content
  • Joao Marcos Costa's avatar
    fs/squashfs: fix reading of fragmented files · 0008d808
    Joao Marcos Costa authored and Tom Rini's avatar Tom Rini committed
    
    
    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: default avatarJoao Marcos Costa <jmcosta944@gmail.com>
    Tested-by: default avatarRichard Genoud <richard.genoud@posteo.net>
    Reviewed-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
    0008d808