diff options
Diffstat (limited to 'block/vmdk.c')
-rw-r--r-- | block/vmdk.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/block/vmdk.c b/block/vmdk.c index 015cbd4..53020ef 100644 --- a/block/vmdk.c +++ b/block/vmdk.c @@ -585,6 +585,11 @@ static int vmdk_open_vmdk4(BlockDriverState *bs, return -ENOTSUP; } + if (le32_to_cpu(header.num_gtes_per_gte) > 512) { + error_report("L2 table size too big"); + return -EINVAL; + } + l1_entry_sectors = le32_to_cpu(header.num_gtes_per_gte) * le64_to_cpu(header.granularity); if (l1_entry_sectors == 0) { |