iotests: Add creation test to 153
This patch adds a test case to 153 which tries to overwrite an image (using qemu-img create) while it is in use. Without the original user explicitly sharing the necessary permissions (writing and truncation), this should not be allowed. Signed-off-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Fam Zheng <famz@redhat.com> Message-id: 20180509215336.31304-4-mreitz@redhat.com Signed-off-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
parent
b8cf1913a9
commit
f45b638f9f
@ -137,6 +137,24 @@ for opts1 in "" "read-only=on" "read-only=on,force-share=on"; do
|
||||
_run_cmd $QEMU_IMG dd $L if="${TEST_IMG}" of="${TEST_IMG}.convert" bs=512 count=1
|
||||
_run_cmd $QEMU_IMG bench $L -c 1 "${TEST_IMG}"
|
||||
_run_cmd $QEMU_IMG bench $L -w -c 1 "${TEST_IMG}"
|
||||
|
||||
# qemu-img create does not support -U
|
||||
if [ -z "$L" ]; then
|
||||
_run_cmd $QEMU_IMG create -f $IMGFMT "${TEST_IMG}" \
|
||||
-b ${TEST_IMG}.base
|
||||
# Read the file format. It used to be the case that
|
||||
# file-posix simply truncated the file, but the qcow2
|
||||
# driver then failed to format it because it was unable
|
||||
# to acquire the necessary WRITE permission. However, the
|
||||
# truncation was already wrong, and the whole process
|
||||
# resulted in the file being completely empty and thus its
|
||||
# format would be detected to be raw.
|
||||
# So we read it here to see that creation either completed
|
||||
# successfully (thus the format is qcow2) or it aborted
|
||||
# before the file was changed at all (thus the format stays
|
||||
# qcow2).
|
||||
_img_info -U | grep 'file format'
|
||||
fi
|
||||
done
|
||||
_send_qemu_cmd $h "{ 'execute': 'quit', }" ""
|
||||
echo
|
||||
|
@ -92,6 +92,11 @@ _qemu_img_wrapper bench -w -c 1 TEST_DIR/t.qcow2
|
||||
qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" lock
|
||||
Is another process using the image?
|
||||
|
||||
_qemu_img_wrapper create -f qcow2 TEST_DIR/t.qcow2 -b TEST_DIR/t.qcow2.base
|
||||
qemu-img: TEST_DIR/t.qcow2: Failed to get "write" lock
|
||||
Is another process using the image?
|
||||
file format: IMGFMT
|
||||
|
||||
== Running utility commands -U ==
|
||||
|
||||
_qemu_io_wrapper -U -c read 0 512 TEST_DIR/t.qcow2
|
||||
@ -209,6 +214,11 @@ _qemu_img_wrapper bench -w -c 1 TEST_DIR/t.qcow2
|
||||
qemu-img: Could not open 'TEST_DIR/t.qcow2': Failed to get "write" lock
|
||||
Is another process using the image?
|
||||
|
||||
_qemu_img_wrapper create -f qcow2 TEST_DIR/t.qcow2 -b TEST_DIR/t.qcow2.base
|
||||
qemu-img: TEST_DIR/t.qcow2: Failed to get "write" lock
|
||||
Is another process using the image?
|
||||
file format: IMGFMT
|
||||
|
||||
== Running utility commands -U ==
|
||||
|
||||
_qemu_io_wrapper -U -c read 0 512 TEST_DIR/t.qcow2
|
||||
@ -309,6 +319,9 @@ _qemu_img_wrapper bench -c 1 TEST_DIR/t.qcow2
|
||||
|
||||
_qemu_img_wrapper bench -w -c 1 TEST_DIR/t.qcow2
|
||||
|
||||
_qemu_img_wrapper create -f qcow2 TEST_DIR/t.qcow2 -b TEST_DIR/t.qcow2.base
|
||||
file format: IMGFMT
|
||||
|
||||
== Running utility commands -U ==
|
||||
|
||||
_qemu_io_wrapper -U -c read 0 512 TEST_DIR/t.qcow2
|
||||
|
Loading…
x
Reference in New Issue
Block a user