summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorFam Zheng <famz@redhat.com>2013-08-06 15:44:51 +0800
committerKevin Wolf <kwolf@redhat.com>2013-08-06 15:27:32 +0200
commit8aa1331c09a9b899f48d97f097bb49b7d458be1c (patch)
treede7c81ae02697f839077c7f997030493d1fbd6f6 /tests
parentca6cbb657d66a7beb70f9d91848c80d1a72b1674 (diff)
downloadqemu-8aa1331c09a9b899f48d97f097bb49b7d458be1c.tar.gz
vmdk: check granularity field in opening
Granularity is used to calculate the cluster size and allocate r/w buffer. Check the value from image before using it, so we don't abort() for unbounded memory allocation. Signed-off-by: Fam Zheng <famz@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'tests')
-rwxr-xr-xtests/qemu-iotests/0598
-rw-r--r--tests/qemu-iotests/059.out6
2 files changed, 13 insertions, 1 deletions
diff --git a/tests/qemu-iotests/059 b/tests/qemu-iotests/059
index 9dc7f64d79..9545e82bc2 100755
--- a/tests/qemu-iotests/059
+++ b/tests/qemu-iotests/059
@@ -43,7 +43,13 @@ _supported_fmt vmdk
_supported_proto generic
_supported_os Linux
-granularity_offset=16
+granularity_offset=20
+
+echo "=== Testing invalid granularity ==="
+echo
+_make_test_img 64M
+poke_file "$TEST_IMG" "$granularity_offset" "\xff\xff\xff\xff\xff\xff\xff\xff"
+{ $QEMU_IO -c "read 0 512" $TEST_IMG; } 2>&1 | _filter_qemu_io | _filter_testdir
# success, all done
echo "*** done"
diff --git a/tests/qemu-iotests/059.out b/tests/qemu-iotests/059.out
index 4ca7f29722..380ca3d943 100644
--- a/tests/qemu-iotests/059.out
+++ b/tests/qemu-iotests/059.out
@@ -1,2 +1,8 @@
QA output created by 059
+=== Testing invalid granularity ===
+
+Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
+invalid granularity, image may be corrupt
+qemu-io: can't open device TEST_DIR/t.vmdk
+no file open, try 'help open'
*** done