diff options
author | Stefan Hajnoczi <stefanha@redhat.com> | 2014-03-26 13:05:27 +0100 |
---|---|---|
committer | Stefan Hajnoczi <stefanha@redhat.com> | 2014-04-01 13:59:47 +0200 |
commit | 7b103b36d6ef3b11827c203d3a793bf7da50ecd6 (patch) | |
tree | 8410b6bced1fbf51927ab319ccca226396376905 /tests/qemu-iotests/075 | |
parent | 509a41bab5306181044b5fff02eadf96d9c8676a (diff) | |
download | qemu-7b103b36d6ef3b11827c203d3a793bf7da50ecd6.zip qemu-7b103b36d6ef3b11827c203d3a793bf7da50ecd6.tar.gz qemu-7b103b36d6ef3b11827c203d3a793bf7da50ecd6.tar.bz2 |
block/cloop: refuse images with huge offsets arrays (CVE-2014-0144)
Limit offsets_size to 512 MB so that:
1. g_malloc() does not abort due to an unreasonable size argument.
2. offsets_size does not overflow the bdrv_pread() int size argument.
This limit imposes a maximum image size of 16 TB at 256 KB block size.
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'tests/qemu-iotests/075')
-rwxr-xr-x | tests/qemu-iotests/075 | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/tests/qemu-iotests/075 b/tests/qemu-iotests/075 index 9ce6b1f..9c00fa8 100755 --- a/tests/qemu-iotests/075 +++ b/tests/qemu-iotests/075 @@ -74,6 +74,12 @@ _use_sample_img simple-pattern.cloop.bz2 poke_file "$TEST_IMG" "$n_blocks_offset" "\xff\xff\xff\xff" $QEMU_IO -c "read 0 512" $TEST_IMG 2>&1 | _filter_qemu_io | _filter_testdir +echo +echo "== refuse images that require too many offsets ===" +_use_sample_img simple-pattern.cloop.bz2 +poke_file "$TEST_IMG" "$n_blocks_offset" "\x04\x00\x00\x01" +$QEMU_IO -c "read 0 512" $TEST_IMG 2>&1 | _filter_qemu_io | _filter_testdir + # success, all done echo "*** done" rm -f $seq.full |