[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH v2 4/7] qcow2: Don't open images with header.ref
From: |
Kevin Wolf |
Subject: |
Re: [Qemu-block] [PATCH v2 4/7] qcow2: Don't open images with header.refcount_table_clusters == 0 |
Date: |
Tue, 7 Nov 2017 17:43:49 +0100 |
User-agent: |
Mutt/1.9.1 (2017-09-22) |
Am 03.11.2017 um 15:18 hat Alberto Garcia geschrieben:
> qcow2_do_open() is checking that header.refcount_table_clusters is not
> too large, but it doesn't check that it's greater than zero. Apart
> from the fact that an image like that is obviously corrupted, trying
> to use it crashes QEMU since we end up with a null s->refcount_table
> after qcow2_refcount_init().
>
> These images can however be repaired, so allow opening them if the
> BDRV_O_CHECK flag is set.
>
> Signed-off-by: Alberto Garcia <address@hidden>
> Reviewed-by: Max Reitz <address@hidden>
> --- a/tests/qemu-iotests/060
> +++ b/tests/qemu-iotests/060
> @@ -270,6 +270,13 @@ poke_file "$TEST_IMG" "$rb_offset"
> "\x00\x00\x00\x00\x00\x00\x00\x00"
> # write will try to allocate a compressed data cluster at offset 0.
> $QEMU_IO -c "write -c 0k 64k" "$TEST_IMG" | _filter_qemu_io
>
> +echo
> +echo "=== Testing zero refcount table size ==="
> +echo
> +_make_test_img 64M
> +poke_file "$TEST_IMG" "56" "\x00\x00\x00\x00"
> +$QEMU_IO -c "write 0 64k" "$TEST_IMG" 2>&1 | _filter_testdir | _filter_imgfmt
In the commit message, you claim that the image can be repaired. Would
it be worth actually testing the repair here?
Kevin
- Re: [Qemu-block] [PATCH v2 3/7] qcow2: Prevent allocating compressed clusters at offset 0, (continued)
[Qemu-block] [PATCH v2 2/7] qcow2: Prevent allocating L2 tables at offset 0, Alberto Garcia, 2017/11/03
[Qemu-block] [PATCH v2 6/7] qcow2: Add iotest for an empty refcount table, Alberto Garcia, 2017/11/03
[Qemu-block] [PATCH v2 1/7] qcow2: Prevent allocating refcount blocks at offset 0, Alberto Garcia, 2017/11/03
[Qemu-block] [PATCH v2 5/7] qcow2: Add iotest for an image with header.refcount_table_offset == 0, Alberto Garcia, 2017/11/03
[Qemu-block] [PATCH v2 4/7] qcow2: Don't open images with header.refcount_table_clusters == 0, Alberto Garcia, 2017/11/03
- Re: [Qemu-block] [PATCH v2 4/7] qcow2: Don't open images with header.refcount_table_clusters == 0,
Kevin Wolf <=
Re: [Qemu-block] [PATCH v2 0/7] Misc qcow2 corruption checks, Max Reitz, 2017/11/03