On 03/20/2018 12:36 PM, Kevin Wolf wrote:
Images with a non-power-of-two block size are invalid and cannot be
opened. Reject such block sizes when creating an image.

Signed-off-by: Kevin Wolf <kw...@redhat.com>
---
  block/vhdx.c | 4 ++++
  1 file changed, 4 insertions(+)


Reviewed-by: Eric Blake <ebl...@redhat.com>

diff --git a/block/vhdx.c b/block/vhdx.c
index f1b97f4b49..ca211a3196 100644
--- a/block/vhdx.c
+++ b/block/vhdx.c
@@ -1877,6 +1877,10 @@ static int coroutine_fn 
vhdx_co_create(BlockdevCreateOptions *opts,
          error_setg_errno(errp, EINVAL, "Block size must be a multiple of 1 
MB");
          return -EINVAL;
      }
+    if (!is_power_of_2(block_size)) {
+        error_setg(errp, "Block size must be a power of two");
+        return -EINVAL;
+    }
      if (block_size > VHDX_BLOCK_SIZE_MAX) {
          error_setg_errno(errp, EINVAL, "Block size must not exceed %d",
                           VHDX_BLOCK_SIZE_MAX);


--
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org

Reply via email to