From 984c36781404592a6fbaa31ec6d25d6b8f933489 Mon Sep 17 00:00:00 2001 From: Max Reitz Date: Fri, 10 Jul 2020 11:50:37 +0200 Subject: [PATCH 1/3] block/amend: Check whether the node exists We should check whether the user-specified node-name actually refers to a node. The simplest way to do that is to use bdrv_lookup_bs() instead of bdrv_find_node() (the former wraps the latter, and produces an error message if necessary). Reported-by: Coverity (CID 1430268) Fixes: ced914d0ab9fb2c900f873f6349a0b8eecd1fdbe Signed-off-by: Max Reitz Message-Id: <20200710095037.10885-1-mreitz@redhat.com> Reviewed-by: Maxim Levitsky --- block/amend.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/block/amend.c b/block/amend.c index f4612dcf08..392df9ef83 100644 --- a/block/amend.c +++ b/block/amend.c @@ -69,8 +69,12 @@ void qmp_x_blockdev_amend(const char *job_id, BlockdevAmendJob *s; const char *fmt = BlockdevDriver_str(options->driver); BlockDriver *drv = bdrv_find_format(fmt); - BlockDriverState *bs = bdrv_find_node(node_name); + BlockDriverState *bs; + bs = bdrv_lookup_bs(NULL, node_name, errp); + if (!bs) { + return; + } if (!drv) { error_setg(errp, "Block driver '%s' not found or not supported", fmt); From 733dafe4914ef2e6d6a9d546b7fdbb429f3590e7 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Wed, 22 Jul 2020 18:19:08 +0200 Subject: [PATCH 2/3] iotests: Select a default machine for the rx and avr targets If you are building only with either the new rx-softmmu or avr-softmmu target, "make check-block" fails a couple of tests since there is no default machine defined in these new targets. We have to select a machine in the "check" script for these, just like we already do for the arm- and tricore-softmmu targets. Signed-off-by: Thomas Huth Message-Id: <20200722161908.25383-1-thuth@redhat.com> Signed-off-by: Max Reitz --- tests/qemu-iotests/check | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/tests/qemu-iotests/check b/tests/qemu-iotests/check index e0d8049012..0657f7286c 100755 --- a/tests/qemu-iotests/check +++ b/tests/qemu-iotests/check @@ -595,15 +595,19 @@ then fi export QEMU_PROG="$(type -p "$QEMU_PROG")" +export QEMU_OPTIONS="-nodefaults -display none -accel qtest" case "$QEMU_PROG" in *qemu-system-arm|*qemu-system-aarch64) - export QEMU_OPTIONS="-nodefaults -display none -machine virt -accel qtest" + export QEMU_OPTIONS="$QEMU_OPTIONS -machine virt" + ;; + *qemu-system-avr) + export QEMU_OPTIONS="$QEMU_OPTIONS -machine mega2560" + ;; + *qemu-system-rx) + export QEMU_OPTIONS="$QEMU_OPTIONS -machine gdbsim-r5f562n8" ;; *qemu-system-tricore) - export QEMU_OPTIONS="-nodefaults -display none -machine tricore_testboard -accel qtest" - ;; - *) - export QEMU_OPTIONS="-nodefaults -display none -accel qtest" + export QEMU_OPTIONS="-$QEMU_OPTIONS -machine tricore_testboard" ;; esac From 1855536256eb0a5708b04b85f744de69559ea323 Mon Sep 17 00:00:00 2001 From: Max Reitz Date: Mon, 27 Jul 2020 15:52:37 +0200 Subject: [PATCH 3/3] iotests/197: Fix for compat=0.10 Writing zeroes to a qcow2 v2 images without a backing file results in an unallocated cluster as of 61b3043965. 197 has a test for COR-ing a cluster on an image without a backing file, which means that the data will be zero, so now on a v2 image that cluster will just stay unallocated, and so the test fails. Just force compat=1.1 for that particular case to enforce the cluster to get allocated. Fixes: 61b3043965fe3552ee2684a97e7cc809ca7a71b3 Signed-off-by: Max Reitz Message-Id: <20200727135237.1096841-1-mreitz@redhat.com> Reviewed-by: Eric Blake --- tests/qemu-iotests/197 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/qemu-iotests/197 b/tests/qemu-iotests/197 index 95f05b0e34..121959a09c 100755 --- a/tests/qemu-iotests/197 +++ b/tests/qemu-iotests/197 @@ -112,7 +112,9 @@ echo echo '=== Partial final cluster ===' echo -_make_test_img 1024 +# Force compat=1.1, because writing zeroes on a v2 image without a +# backing file would just result in an unallocated cluster +_make_test_img -o compat=1.1 1024 $QEMU_IO -f $IMGFMT -C -c 'read 0 1024' "$TEST_IMG" | _filter_qemu_io $QEMU_IO -f $IMGFMT -c map "$TEST_IMG" _check_test_img