From: Fam Zheng Date: Thu, 13 Jun 2013 03:21:29 +0000 (+0800) Subject: vmdk: refuse to open higher version than supported X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=96c51eb5e46af2312b33f745ad72acb20e799aea;p=qemu.git vmdk: refuse to open higher version than supported Refuse to open higher version for safety. Although we try to be compatible with published VMDK spec, VMware has newer version from ESXi 5.1 exported OVF/OVA, which we have no knowledge what's changed in it. And it is very likely to have more new versions in the future, so it's not safe to open them blindly. Signed-off-by: Fam Zheng Signed-off-by: Stefan Hajnoczi --- diff --git a/block/vmdk.c b/block/vmdk.c index 65ae0119c4..975e1d41ff 100644 --- a/block/vmdk.c +++ b/block/vmdk.c @@ -561,6 +561,15 @@ static int vmdk_open_vmdk4(BlockDriverState *bs, header = footer.header; } + if (le32_to_cpu(header.version) >= 3) { + char buf[64]; + snprintf(buf, sizeof(buf), "VMDK version %d", + le32_to_cpu(header.version)); + qerror_report(QERR_UNKNOWN_BLOCK_FORMAT_FEATURE, + bs->device_name, "vmdk", buf); + return -ENOTSUP; + } + l1_entry_sectors = le32_to_cpu(header.num_gtes_per_gte) * le64_to_cpu(header.granularity); if (l1_entry_sectors == 0) {