block: Raise an error when backing file parameter is an empty string
Providing an empty string for the backing file parameter like so: qemu-img create -f qcow2 -b '' /tmp/foo allows the flow of control to reach and subsequently fail an assert statement because passing an empty string to bdrv_get_full_backing_filename_from_filename() simply results in NULL being returned without an error being raised. To fix this, let's check for an empty string when getting the value from the opts list. Reported-by: Attila Fazekas <afazekas@redhat.com> Fixes: https://bugzilla.redhat.com/1809553 Signed-off-by: Connor Kuehl <ckuehl@redhat.com> Message-Id: <20200813134722.802180-1-ckuehl@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
7c37270b3f
commit
975a7bd228
4
block.c
4
block.c
@ -6119,6 +6119,10 @@ void bdrv_img_create(const char *filename, const char *fmt,
|
||||
"same filename as the backing file");
|
||||
goto out;
|
||||
}
|
||||
if (backing_file[0] == '\0') {
|
||||
error_setg(errp, "Expected backing file name, got empty string");
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
||||
backing_fmt = qemu_opt_get(opts, BLOCK_OPT_BACKING_FMT);
|
||||
|
@ -119,6 +119,10 @@ test_qemu_img create -f $IMGFMT -o compat=1.1,lazy_refcounts=on "$TEST_IMG" 64M
|
||||
test_qemu_img create -f $IMGFMT -o compat=0.10,lazy_refcounts=off "$TEST_IMG" 64M
|
||||
test_qemu_img create -f $IMGFMT -o compat=0.10,lazy_refcounts=on "$TEST_IMG" 64M
|
||||
|
||||
echo "== Expect error when backing file name is empty string =="
|
||||
echo
|
||||
test_qemu_img create -f $IMGFMT -b '' $TEST_IMG 1M
|
||||
|
||||
# success, all done
|
||||
echo "*** done"
|
||||
rm -f $seq.full
|
||||
|
@ -209,4 +209,9 @@ qemu-img create -f qcow2 -o compat=0.10,lazy_refcounts=on TEST_DIR/t.qcow2 64M
|
||||
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=67108864 compat=0.10 lazy_refcounts=on refcount_bits=16
|
||||
qemu-img: TEST_DIR/t.qcow2: Lazy refcounts only supported with compatibility level 1.1 and above (use version=v3 or greater)
|
||||
|
||||
== Expect error when backing file name is empty string ==
|
||||
|
||||
qemu-img create -f qcow2 -b TEST_DIR/t.qcow2 1M
|
||||
qemu-img: TEST_DIR/t.qcow2: Expected backing file name, got empty string
|
||||
|
||||
*** done
|
||||
|
Loading…
Reference in New Issue
Block a user