qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v8 11/11] parallels: Incorrect condition in out-of-image chec


From: Alexander Ivanov
Subject: Re: [PATCH v8 11/11] parallels: Incorrect condition in out-of-image check
Date: Fri, 20 Jan 2023 11:37:24 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2



On 18.01.2023 15:46, Hanna Czenczek wrote:
On 15.01.23 16:58, 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>
Reviewed-by: Denis V. Lunev <den@openvz.org>
---
  block/parallels.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/block/parallels.c b/block/parallels.c
index 621dbf623a..eda3fb558d 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 >= size) {

Should this not be the even stricter `off + s->cluster_size > size` instead, or is it possible to have partial clusters at the image end?

Hanna
'off' is aligned* on the cluster size, so these conditions are equivalent, but I agree, your condition is more idiomatic.

* It works for the new image format. In the old one there could be entries in the BAT, pointing to unaligned clusters. There will be a separate check for unaligned clusters.

              fprintf(stderr, "%s cluster %u is outside image\n",
                      fix & BDRV_FIX_ERRORS ? "Repairing" : "ERROR", i);
              res->corruptions++;





reply via email to

[Prev in Thread] Current Thread [Next in Thread]