diff --git a/fs/squashfs/block.c b/fs/squashfs/block.c index 833aca92301f0e1d794bd4a1c1616e0a80fb84cd..45ea5d62cef42c820ba30c192efe83c922c78449 100644 --- a/fs/squashfs/block.c +++ b/fs/squashfs/block.c @@ -198,7 +198,7 @@ int squashfs_read_data(struct super_block *sb, u64 index, int length, TRACE("Block @ 0x%llx, %scompressed size %d\n", index - 2, compressed ? "" : "un", length); } - if (length < 0 || length > output->length || + if (length <= 0 || length > output->length || (index + length) > msblk->bytes_used) { res = -EIO; goto out;