qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 09/21] qcow2: Open images with refcount order !=


From: Max Reitz
Subject: Re: [Qemu-devel] [PATCH 09/21] qcow2: Open images with refcount order != 4
Date: Mon, 10 Nov 2014 18:06:25 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0

On 2014-11-10 at 18:03, Eric Blake wrote:
On 11/10/2014 06:45 AM, Max Reitz wrote:
No longer refuse to open images with a different refcount entry width
than 16 bits; only reject images with a refcount width larger than 64
bits (which is prohibited by the specification).

Signed-off-by: Max Reitz <address@hidden>
---
  block/qcow2.c | 8 ++++----
  1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/block/qcow2.c b/block/qcow2.c
index d70e927..b718e75 100644
--- a/block/qcow2.c
+++ b/block/qcow2.c
@@ -677,10 +677,10 @@ static int qcow2_open(BlockDriverState *bs, QDict 
*options, int flags,
      }
/* Check support for various header values */
-    if (header.refcount_order != 4) {
-        report_unsupported(bs, errp, "%d bit reference counts",
-                           1 << header.refcount_order);
-        ret = -ENOTSUP;
+    if (header.refcount_order > 6) {
+        error_setg(errp, "Reference count entry width too large (%i bit); may "
+                   "not exceed 64 bit", 1 << header.refcount_order);
Overflows if I fuzz an image to put 32 or larger into
header.refcount_order. It may be better to just tweak the error message
to state that the order cannot exceed 6, rather than trying to display
the actual bit width that the user is requesting, as then you avoid the
'1 << problem'.

Yes, probably. Or we display it in binary: "0b1%0*i", header.refcount_order, 0 (which works since refcount_order is guaranteed to exceed 6).

Joking aside, yes, I'll omit the theoretical refcount width.

Max



reply via email to

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