Commit b412f494 authored by Kevin Wolf's avatar Kevin Wolf
Browse files

vhdx: Require power-of-two block size on create



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: default avatarKevin Wolf <kwolf@redhat.com>
Reviewed-by: default avatarEric Blake <eblake@redhat.com>
Reviewed-by: default avatarJeff Cody <jcody@redhat.com>
parent e8f6ea6f
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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);