diff options
author | Fam Zheng <famz@redhat.com> | 2013-08-06 15:44:53 +0800 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2013-08-06 15:27:32 +0200 |
commit | 2c43e43c8cec130fff95ef720a860e91efb36685 (patch) | |
tree | 03cce2301a24e14038d02ec8685e7eecb051dcfe /tests/qemu-iotests/059 | |
parent | f8ce04036e333aae480b1d06d969f6436652633d (diff) |
vmdk: check l1 size before opening image
L1 table size is calculated from capacity, granularity and l2 table
size. If capacity is too big or later two are too small, the L1 table
will be too big to allocate in memory. Limit it to a reasonable range.
Signed-off-by: Fam Zheng <famz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'tests/qemu-iotests/059')
-rwxr-xr-x | tests/qemu-iotests/059 | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/tests/qemu-iotests/059 b/tests/qemu-iotests/059 index 301eacaf7e..b03429dd01 100755 --- a/tests/qemu-iotests/059 +++ b/tests/qemu-iotests/059 @@ -43,6 +43,7 @@ _supported_fmt vmdk _supported_proto generic _supported_os Linux +capacity_offset=16 granularity_offset=20 grain_table_size_offset=44 @@ -58,6 +59,13 @@ _make_test_img 64M poke_file "$TEST_IMG" "$grain_table_size_offset" "\xff\xff\xff\xff" { $QEMU_IO -c "read 0 512" $TEST_IMG; } 2>&1 | _filter_qemu_io | _filter_testdir +echo "=== Testing too big L1 table size ===" +echo +_make_test_img 64M +poke_file "$TEST_IMG" "$capacity_offset" "\xff\xff\xff\xff" +poke_file "$TEST_IMG" "$grain_table_size_offset" "\x01\x00\x00\x00" +{ $QEMU_IO -c "read 0 512" $TEST_IMG; } 2>&1 | _filter_qemu_io | _filter_testdir + # success, all done echo "*** done" rm -f $seq.full |