]> git.ipfire.org Git - thirdparty/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)
committerMichael Roth <mdroth@linux.vnet.ibm.com>
Fri, 5 Aug 2016 18:55:23 +0000 (13:55 -0500)
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>
(cherry picked from commit 84c26520d3c1c9ff4a10455748139463278816d5)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
block/qcow2-cluster.c

index 31ecc1030452be1e536c468ab5ef3e6f12d6be1d..22bdb4750d140efe7092eab614b4d3eb9b1bb532 100644 (file)
@@ -64,7 +64,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;
     }