Kevin Wolf da15ee5134 block: Catch integer overflow in bdrv_rw_co()
Insanely large requests could cause an integer overflow in
bdrv_rw_co() while converting sectors to bytes. This patch catches the
problem and returns an error (if we hadn't overflown the integer here,
bdrv_check_byte_request() would have rejected the request, so we're not
breaking anything that was supposed to work before).

We actually do have a test case that triggers behaviour where we
accidentally let such a request pass, so that it would return success,
but read 0 bytes instead of the requested 4 GB. It fails now like it
should.

If the vdi block driver wants to be able to deal with huge images, it
can't read the whole block bitmap at once into memory like it does
today, but needs to use a metadata cache like qcow2 does.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2014-04-22 11:57:02 +02:00
..
2012-04-19 15:48:52 +02:00
2013-08-30 15:48:43 +02:00
2013-08-30 15:48:43 +02:00
041
2013-11-27 07:53:32 -08:00
2013-11-27 07:53:32 -08:00
056
2013-07-26 22:01:31 +02:00
2014-02-21 21:02:24 +01:00
062
2013-08-30 15:28:52 +02:00
2014-01-22 12:07:18 +01:00
075
2014-04-01 13:59:47 +02:00
077
2014-02-09 09:12:38 +01:00
2014-01-24 17:40:25 +01:00
078
2014-04-11 13:59:49 +02:00
2014-04-11 13:59:49 +02:00
084
2014-04-01 15:22:35 +02:00
088
2014-04-01 13:59:47 +02:00
2012-02-23 10:29:46 +01:00

=== This is the QEMU I/O test suite ===

* Intro

This package contains a simple test suite for the I/O layer of qemu.
It does not require a guest, but only the qemu, qemu-img and qemu-io
binaries.  This does limit it to exercise the low-level I/O path only
but no actual block drivers like ide, scsi or virtio.

* Usage

Just run ./check to run all tests for the raw image format, or ./check
-qcow2 to test the qcow2 image format.  The output of ./check -h explains
additional options to test further image formats or I/O methods.

* Feedback and patches

Please send improvements to the test suite, general feedback or just
reports of failing tests cases to qemu-devel@savannah.nongnu.org.