qemu/block
Kevin Wolf 12ac6d3db7 qcow2: Fix error path for unknown incompatible features
qcow2's report_unsupported_feature() had two bugs: A 32 bit truncation
would prevent feature table entries for bits 32-63 from being used, and
it could assign errp multiple times if there was more than one unknown
feature, resulting in an error_set() assertion failure.

Fix the truncation, make sure to set the error exactly once and add a
qemu-iotests case for it.

This fixes https://bugs.launchpad.net/qemu/+bug/1342704/

Reported-by: Maria Kustova <maria.k@catit.be>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2014-07-18 13:12:15 +01:00
..
backup.c block/backup: Fix hang for unaligned image size 2014-07-09 15:50:11 +02:00
blkdebug.c blkdebug: use BlockDriverState's AioContext 2014-06-04 09:56:11 +02:00
blkverify.c blkverify: implement .bdrv_detach/attach_aio_context() 2014-06-04 09:56:11 +02:00
bochs.c block/bochs: Fix error handling for seek_to_sector() 2014-04-30 14:46:17 +02:00
cloop.c block/cloop: use PRIu32 format specifier for uint32_t 2014-04-23 11:34:10 +02:00
commit.c block: extend block-commit to accept a string for the backing file 2014-07-01 10:47:01 +02:00
cow.c block/cow: Avoid use of uninitialized cow_bs in error path 2014-07-01 10:15:34 +02:00
curl.c block: Drop superfluous conditionals around g_free() 2014-06-16 17:23:19 +08:00
dmg.c block: Use correct width in format strings 2014-04-30 14:46:17 +02:00
gluster.c cleanup QEMUOptionParameter 2014-06-16 17:23:21 +08:00
iscsi.c Fix new typos (found by codespell) 2014-06-24 20:01:24 +04:00
linux-aio.c linux-aio: Fix laio resource leak 2014-07-15 15:34:13 +02:00
Makefile.objs Block patches 2014-02-25 10:50:11 +00:00
mirror.c mirror: Fix qiov size for short requests 2014-07-07 09:15:29 +02:00
nbd-client.c nbd: implement .bdrv_detach/attach_aio_context() 2014-06-04 09:56:11 +02:00
nbd-client.h nbd: implement .bdrv_detach/attach_aio_context() 2014-06-04 09:56:11 +02:00
nbd.c nbd: implement .bdrv_detach/attach_aio_context() 2014-06-04 09:56:11 +02:00
nfs.c block/nfs: add knob to set readahead 2014-06-26 13:51:01 +02:00
parallels.c parallels: Sanity check for s->tracks (CVE-2014-0142) 2014-04-01 15:22:35 +02:00
qapi.c block: acquire AioContext in qmp_query_blockstats() 2014-06-27 18:20:29 +02:00
qcow2-cache.c qcow2: Use negated overflow check mask 2013-10-11 16:50:00 +02:00
qcow2-cluster.c qcow2: Fix memory leak in COW error path 2014-05-28 14:28:46 +02:00
qcow2-refcount.c qapi event: convert BLOCK_IMAGE_CORRUPTED 2014-06-23 11:12:27 -04:00
qcow2-snapshot.c qcow2: Limit snapshot table size 2014-04-01 15:22:35 +02:00
qcow2.c qcow2: Fix error path for unknown incompatible features 2014-07-18 13:12:15 +01:00
qcow2.h qcow2: Limit snapshot table size 2014-04-01 15:22:35 +02:00
qcow.c block: Catch backing files assigned to non-COW drivers 2014-06-26 13:51:01 +02:00
qed-check.c qed: mark image clean after repair succeeds 2012-08-10 10:25:12 +02:00
qed-cluster.c Use glib memory allocation and free functions 2011-08-20 23:01:08 -05:00
qed-gencb.c Use glib memory allocation and free functions 2011-08-20 23:01:08 -05:00
qed-l2-cache.c qed: do not evict in-use L2 table cache entries 2012-03-12 15:14:06 +01:00
qed-table.c qed: use BlockDriverState's AioContext 2014-06-04 09:56:11 +02:00
qed.c qed: Make qiov match request size until backing file EOF 2014-07-14 12:03:20 +02:00
qed.h qed: Make qiov match request size until backing file EOF 2014-07-14 12:03:20 +02:00
quorum.c quorum: Add the rewrite-corrupted parameter to quorum 2014-06-27 14:18:17 +02:00
raw_bsd.c cleanup QEMUOptionParameter 2014-06-16 17:23:21 +08:00
raw-aio.h linux-aio: implement io plug, unplug and flush io queue 2014-07-07 11:05:17 +02:00
raw-posix.c block: Assert qiov length matches request length 2014-07-14 12:03:20 +02:00
raw-win32.c cleanup QEMUOptionParameter 2014-06-16 17:23:21 +08:00
rbd.c cleanup QEMUOptionParameter 2014-06-16 17:23:21 +08:00
sheepdog.c sheepdog: fix NULL dereference in sd_create 2014-06-23 16:36:13 +08:00
snapshot.c Use error_is_set() only when necessary 2014-02-17 11:57:23 -05:00
ssh.c cleanup QEMUOptionParameter 2014-06-16 17:23:21 +08:00
stream.c block: add backing-file option to block-stream 2014-07-01 10:47:01 +02:00
vdi.c qemu-img create: add 'nocow' option 2014-07-01 10:15:12 +02:00
vhdx-endian.c block: vhdx - move more endian translations to vhdx-endian.c 2013-11-07 13:58:59 +01:00
vhdx-log.c Fixed various typos 2014-03-25 14:09:50 +01:00
vhdx.c cleanup QEMUOptionParameter 2014-06-16 17:23:21 +08:00
vhdx.h vhdx.c: replace QEMUOptionParameter with QemuOpts 2014-06-16 17:23:21 +08:00
vmdk.c qemu-img create: add 'nocow' option 2014-07-01 10:15:12 +02:00
vpc.c qemu-img create: add 'nocow' option 2014-07-01 10:15:12 +02:00
vvfat.c cleanup QEMUOptionParameter 2014-06-16 17:23:21 +08:00
win32-aio.c block/raw-win32: implement .bdrv_detach/attach_aio_context() 2014-06-04 09:56:12 +02:00