]> git.proxmox.com Git - mirror_qemu.git/commitdiff
qcow2: Avoid making the L1 table too big
authorMax Reitz <mreitz@redhat.com>
Wed, 15 Jun 2016 15:36:30 +0000 (17:36 +0200)
committerMax Reitz <mreitz@redhat.com>
Wed, 13 Jul 2016 11:41:38 +0000 (13:41 +0200)
We refuse to open images whose L1 table we deem "too big". Consequently,
we should not produce such images ourselves.

Cc: qemu-stable@nongnu.org
Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-id: 20160615153630.2116-3-mreitz@redhat.com
Reviewed-by: Eric Blake <eblake@redhat.com>
[mreitz: Added QEMU_BUILD_BUG_ON()]
Signed-off-by: Max Reitz <mreitz@redhat.com>
block/qcow2-cluster.c

index 6b92ce9429bc6df2c0e0cdfa85b902dd99dabb9e..00c16dcba5663985d8d5050deddd8779ed4691aa 100644 (file)
@@ -65,7 +65,8 @@ int qcow2_grow_l1_table(BlockDriverState *bs, uint64_t min_size,
         }
     }
 
-    if (new_l1_size > INT_MAX / sizeof(uint64_t)) {
+    QEMU_BUILD_BUG_ON(QCOW_MAX_L1_SIZE > INT_MAX);
+    if (new_l1_size > QCOW_MAX_L1_SIZE / sizeof(uint64_t)) {
         return -EFBIG;
     }