• Phillip Lougher's avatar
    Squashfs: Valid filesystems are flagged as bad by the corrupted fs patch · 363911d0
    Phillip Lougher authored
    The corrupted filesystem patch added a check against zlib trying to
    output too much data in the presence of data corruption.  This check
    triggered if zlib_inflate asked to be called again (Z_OK) with
    avail_out == 0 and no more output buffers available.  This check proves
    to be rather dumb, as it incorrectly catches the case where zlib has
    generated all the output, but there are still input bytes to be processed.
    
    This patch does a number of things.  It removes the original check and
    replaces it with code to not move to the next output buffer if there
    are no more output buffers available, relying on zlib to error if it
    wants an extra output buffer in the case of data corruption.  It
    also replaces the Z_NO_FLUSH flag with the more correct Z_SYNC_FLUSH
    flag, and makes the error messages more understandable to
    non-technical users.
    Signed-off-by: default avatarPhillip Lougher <phillip@lougher.demon.co.uk>
    Reported-by: default avatarStefan Lippers-Hollmann <s.L-H@gmx.de>
    363911d0
block.c 6.71 KB