]> git.proxmox.com Git - mirror_qemu.git/commitdiff
vhdx: Require power-of-two block size on create
authorKevin Wolf <kwolf@redhat.com>
Tue, 20 Mar 2018 17:09:15 +0000 (18:09 +0100)
committerKevin Wolf <kwolf@redhat.com>
Mon, 26 Mar 2018 10:17:43 +0000 (12:17 +0200)
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 <kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Jeff Cody <jcody@redhat.com>
block/vhdx.c

index d2c54b789191224e27b000c63aa163263c085f49..6a5e48eb69227d476a85646a9f8d07ad8bea0731 100644 (file)
@@ -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);