Skip to content

Commit

Permalink
vhdx: Require power-of-two block size on create
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
kevmw committed Mar 26, 2018
1 parent e8f6ea6 commit b412f49
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions block/vhdx.c
Expand Up @@ -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);
Expand Down

0 comments on commit b412f49

Please sign in to comment.