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;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
} else if (!strcmp(type, "VMFS")) {
|
} 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) {
|
} else if (ret != 4) {
|
||||||
error_setg(errp, "Invalid extent lines: \n%s", p);
|
error_setg(errp, "Invalid extent lines:\n%s", p);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -80,6 +80,20 @@ echo "=== Testing big twoGbMaxExtentFlat ==="
|
||||||
IMGOPTS="subformat=twoGbMaxExtentFlat" _make_test_img 1000G
|
IMGOPTS="subformat=twoGbMaxExtentFlat" _make_test_img 1000G
|
||||||
$QEMU_IMG info $TEST_IMG | _filter_testdir | sed -e 's/cid: [0-9]*/cid: XXXXXXXX/'
|
$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
|
||||||
echo "=== Testing version 3 ==="
|
echo "=== Testing version 3 ==="
|
||||||
_use_sample_img iotest-version3.vmdk.bz2
|
_use_sample_img iotest-version3.vmdk.bz2
|
||||||
|
|
|
@ -2038,6 +2038,11 @@ Format specific information:
|
||||||
filename: TEST_DIR/t-f500.vmdk
|
filename: TEST_DIR/t-f500.vmdk
|
||||||
format: FLAT
|
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 ===
|
=== Testing version 3 ===
|
||||||
image: TEST_DIR/iotest-version3.IMGFMT
|
image: TEST_DIR/iotest-version3.IMGFMT
|
||||||
file format: IMGFMT
|
file format: IMGFMT
|
||||||
|
|
Loading…
Reference in New Issue