From: Kevin Wolf Date: Tue, 20 Mar 2018 17:24:54 +0000 (+0100) Subject: vhdx: Check for 4 GB maximum log size on creation X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=6f16f7c5625fde5634cc4c40857b66cdee09dc17;p=qemu.git vhdx: Check for 4 GB maximum log size on creation It's unclear what the real maximum is, but we use an uint32_t to store the log size in vhdx_co_create(), so we should check that the given value fits in 32 bits. Signed-off-by: Kevin Wolf Reviewed-by: Eric Blake Reviewed-by: Jeff Cody --- diff --git a/block/vhdx.c b/block/vhdx.c index 4a087d8708..6ac0424f61 100644 --- a/block/vhdx.c +++ b/block/vhdx.c @@ -1829,6 +1829,10 @@ static int coroutine_fn vhdx_co_create(BlockdevCreateOptions *opts, if (!vhdx_opts->has_log_size) { log_size = DEFAULT_LOG_SIZE; } else { + if (vhdx_opts->log_size > UINT32_MAX) { + error_setg(errp, "Log size must be smaller than 4 GB"); + return -EINVAL; + } log_size = vhdx_opts->log_size; } if (log_size < MiB || (log_size % MiB) != 0) {