Re: [Qemu-devel] [PATCH v2 4/4] vmdk: Move l1_size check into vmdk_add_extent()

2013-08-19 Thread Kevin Wolf
Am 13.08.2013 um 03:21 hat Fam Zheng geschrieben:
 This header check is common to VMDK3 and VMDK4, so move it into
 vmdk_add_extent().
 
 Signed-off-by: Fam Zheng f...@redhat.com

Aha, so this is the fix for patch 1. If you reorder the patches so that
this one comes first, you don't have broken intermediate patches.

Kevin



[Qemu-devel] [PATCH v2 4/4] vmdk: Move l1_size check into vmdk_add_extent()

2013-08-12 Thread Fam Zheng
This header check is common to VMDK3 and VMDK4, so move it into
vmdk_add_extent().

Signed-off-by: Fam Zheng f...@redhat.com
---
 block/vmdk.c | 16 
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/block/vmdk.c b/block/vmdk.c
index b653e2e..63b489d 100644
--- a/block/vmdk.c
+++ b/block/vmdk.c
@@ -401,6 +401,14 @@ static int vmdk_add_extent(BlockDriverState *bs,
 error_report(invalid granularity, image may be corrupt);
 return -EINVAL;
 }
+if (l1_size  512 * 1024 * 1024) {
+/* Although with big capacity and small l1_entry_sectors, we can get a
+ * big l1_size, we don't want unbounded value to allocate the table.
+ * Limit it to 512M, which is 16PB for default cluster and L2 table
+ * size */
+error_report(L1 size too big);
+return -EFBIG;
+}
 
 s-extents = g_realloc(s-extents,
   (s-num_extents + 1) * sizeof(VmdkExtent));
@@ -598,14 +606,6 @@ static int vmdk_open_vmdk4(BlockDriverState *bs,
 }
 l1_size = (le64_to_cpu(header.capacity) + l1_entry_sectors - 1)
 / l1_entry_sectors;
-if (l1_size  512 * 1024 * 1024) {
-/* although with big capacity and small l1_entry_sectors, we can get a
- * big l1_size, we don't want unbounded value to allocate the table.
- * Limit it to 512M, which is 16PB for default cluster and L2 table
- * size */
-error_report(L1 size too big);
-return -EFBIG;
-}
 if (le32_to_cpu(header.flags)  VMDK4_FLAG_RGD) {
 l1_backup_offset = le64_to_cpu(header.rgd_offset)  9;
 }
-- 
1.8.3.1