mirror of https://gitee.com/openkylin/qemu.git
parallels: Check maximum cluster size on create
It's unclear what the real maximum cluster size is for the Parallels format, but let's at least make sure that we don't get integer overflows in our .bdrv_co_create implementation. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
50880f25c8
commit
2332d82589
|
@ -526,6 +526,11 @@ static int coroutine_fn parallels_co_create(BlockdevCreateOptions* opts,
|
|||
cl_size = DEFAULT_CLUSTER_SIZE;
|
||||
}
|
||||
|
||||
/* XXX What is the real limit here? This is an insanely large maximum. */
|
||||
if (cl_size >= INT64_MAX / MAX_PARALLELS_IMAGE_FACTOR) {
|
||||
error_setg(errp, "Cluster size is too large");
|
||||
return -EINVAL;
|
||||
}
|
||||
if (total_size >= MAX_PARALLELS_IMAGE_FACTOR * cl_size) {
|
||||
error_setg(errp, "Image size is too large for this cluster size");
|
||||
return -E2BIG;
|
||||
|
|
Loading…
Reference in New Issue