497a30dbb0
Back in commit d9f059aa6c
(qemu-img: Deprecate use of -b without -F),
we deprecated the ability to create a file with a backing image that
requires qemu to perform format probing. Qemu can still probe older
files for backwards compatibility, but it is time to finish off the
ability to create such images, due to the potential security risk they
present. Update a couple of iotests affected by the change.
Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <20210503213600.569128-3-eblake@redhat.com>
Reviewed-by: Connor Kuehl <ckuehl@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
88 lines
2.3 KiB
Bash
Executable File
88 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# group: backing quick
|
|
#
|
|
# Test qcow backing file warnings
|
|
#
|
|
# Copyright (C) 2020-2021 Red Hat, Inc.
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 2 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
#
|
|
|
|
seq=`basename $0`
|
|
echo "QA output created by $seq"
|
|
|
|
status=1 # failure is the default!
|
|
|
|
_cleanup()
|
|
{
|
|
_cleanup_test_img
|
|
_rm_test_img "$TEST_IMG.qcow2"
|
|
}
|
|
trap "_cleanup; exit \$status" 0 1 2 3 15
|
|
|
|
# get standard environment, filters and checks
|
|
. ./common.rc
|
|
. ./common.filter
|
|
|
|
_supported_fmt qcow
|
|
_supported_proto file
|
|
_supported_os Linux
|
|
|
|
size=32M
|
|
|
|
echo
|
|
echo "== qcow backed by qcow =="
|
|
|
|
TEST_IMG="$TEST_IMG.base" _make_test_img $size
|
|
_make_test_img -b "$TEST_IMG.base" $size
|
|
_make_test_img -b "$TEST_IMG.base" -F $IMGFMT $size
|
|
_img_info
|
|
|
|
echo
|
|
echo "== mismatched command line detection =="
|
|
|
|
_make_test_img -b "$TEST_IMG.base" -F vmdk
|
|
_make_test_img -b "$TEST_IMG.base" -F vmdk $size
|
|
echo
|
|
# Use of -u bypasses the backing format sanity check
|
|
_make_test_img -u -b "$TEST_IMG.base" -F vmdk
|
|
_make_test_img -u -b "$TEST_IMG.base" -F vmdk $size
|
|
echo
|
|
# But the format must still be recognized
|
|
_make_test_img -b "$TEST_IMG.base" -F garbage $size
|
|
_make_test_img -u -b "$TEST_IMG.base" -F garbage $size
|
|
_img_info
|
|
|
|
echo
|
|
echo "== qcow backed by raw =="
|
|
|
|
rm "$TEST_IMG.base"
|
|
truncate --size=$size "$TEST_IMG.base"
|
|
_make_test_img -b "$TEST_IMG.base" $size
|
|
_make_test_img -b "$TEST_IMG.base" -F raw $size
|
|
_img_info
|
|
|
|
echo
|
|
echo "== commit cannot change type of raw backing file =="
|
|
TEST_IMG="$TEST_IMG.qcow2" IMGFMT=qcow2 _make_test_img $size
|
|
truncate --size=$size "$TEST_IMG.qcow2"
|
|
$QEMU_IMG convert -n -f raw -O $IMGFMT "$TEST_IMG.qcow2" "$TEST_IMG"
|
|
$QEMU_IMG commit -f $IMGFMT "$TEST_IMG" && echo "unexpected success"
|
|
TEST_IMG="$TEST_IMG.base" _img_info
|
|
|
|
# success, all done
|
|
echo "*** done"
|
|
rm -f $seq.full
|
|
status=0
|