mirror of https://github.com/xemu-project/xemu.git
vmdk: Check VMFS extent line field number
VMFS extent line in description file should be with 4 fields: RW <size> VMFS "file-name.vmdk" Check the number explicitly and report error if offset is appended as FLAT, which should be invalid format. Reported-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Fam Zheng <famz@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
8282db1b2e
commit
b47053bd03
|
@ -749,9 +749,14 @@ static int vmdk_parse_extents(const char *desc, BlockDriverState *bs,
|
|||
return -EINVAL;
|
||||
}
|
||||
} else if (!strcmp(type, "VMFS")) {
|
||||
flat_offset = 0;
|
||||
if (ret == 4) {
|
||||
flat_offset = 0;
|
||||
} else {
|
||||
error_setg(errp, "Invalid extent lines:\n%s", p);
|
||||
return -EINVAL;
|
||||
}
|
||||
} else if (ret != 4) {
|
||||
error_setg(errp, "Invalid extent lines: \n%s", p);
|
||||
error_setg(errp, "Invalid extent lines:\n%s", p);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
|
|
|
@ -80,6 +80,20 @@ echo "=== Testing big twoGbMaxExtentFlat ==="
|
|||
IMGOPTS="subformat=twoGbMaxExtentFlat" _make_test_img 1000G
|
||||
$QEMU_IMG info $TEST_IMG | _filter_testdir | sed -e 's/cid: [0-9]*/cid: XXXXXXXX/'
|
||||
|
||||
echo
|
||||
echo "=== Testing malformed VMFS extent description line ==="
|
||||
cat >"$TEST_IMG" <<EOF
|
||||
# Disk DescriptorFile
|
||||
version=1
|
||||
CID=58ab4847
|
||||
parentCID=ffffffff
|
||||
createType="vmfs"
|
||||
|
||||
# Extent description
|
||||
RW 12582912 VMFS "dummy.vmdk" 1
|
||||
EOF
|
||||
_img_info
|
||||
|
||||
echo
|
||||
echo "=== Testing version 3 ==="
|
||||
_use_sample_img iotest-version3.vmdk.bz2
|
||||
|
|
|
@ -2038,6 +2038,11 @@ Format specific information:
|
|||
filename: TEST_DIR/t-f500.vmdk
|
||||
format: FLAT
|
||||
|
||||
=== Testing malformed VMFS extent description line ===
|
||||
qemu-img: Could not open 'TEST_DIR/t.IMGFMT': Invalid extent lines:
|
||||
RW 12582912 VMFS "dummy.IMGFMT" 1
|
||||
|
||||
|
||||
=== Testing version 3 ===
|
||||
image: TEST_DIR/iotest-version3.IMGFMT
|
||||
file format: IMGFMT
|
||||
|
|
Loading…
Reference in New Issue