[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-block] [PATCH for-2.12 07/12] parallels: Check maximum cluster

From: Eric Blake
Subject: Re: [Qemu-block] [PATCH for-2.12 07/12] parallels: Check maximum cluster size on create
Date: Tue, 20 Mar 2018 13:34:52 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0

On 03/20/2018 12:36 PM, Kevin Wolf wrote:
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 <address@hidden>
  block/parallels.c | 5 +++++
  1 file changed, 5 insertions(+)

diff --git a/block/parallels.c b/block/parallels.c
index 2da5e56a9d..e4ca018c2e 100644
--- a/block/parallels.c
+++ b/block/parallels.c
@@ -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 >= UINT64_MAX / MAX_PARALLELS_IMAGE_FACTOR) {

INT64_MAX is probably a saner starting point for the division...

+        error_setg(errp, "Cluster size is too large");
+        return -EINVAL;
+    }
      if (total_size >= MAX_PARALLELS_IMAGE_FACTOR * cl_size) {

since total_size still has to fit within off_t (63 bits, not 64)

          error_setg(errp, "Image size is too large for this cluster size");
          return -E2BIG;

With that change,
Reviewed-by: Eric Blake <address@hidden>

Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org

reply via email to

[Prev in Thread] Current Thread [Next in Thread]