On 1/31/23 11:27, Alexander Ivanov wrote:
> All the offsets in the BAT must be lower than the file size.
> Fix the check condition for correct check.
>
> Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
> ---
> block/parallels.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/block/parallels.c b/block/parallels.c
> index e4faa14add..e469fe3f78 100644
> --- a/block/parallels.c
> +++ b/block/parallels.c
> @@ -455,7 +455,7 @@ static int parallels_check_outside_image(BlockDriverState *bs,
> high_off = 0;
> for (i = 0; i < s->bat_size; i++) {
> off = bat2sect(s, i) << BDRV_SECTOR_BITS;
> - if (off > size) {
> + if (off + s->cluster_size > size) {
> fprintf(stderr, "%s cluster %u is outside image\n",
> fix & BDRV_FIX_ERRORS ? "Repairing" : "ERROR", i);
> res->corruptions++;
Reviewed-by: Denis V. Lunev <den@openvz.org>