qemu-io: don't allow I/O operations larger than BDRV_REQUEST_MAX_BYTES
commit3026c4688ca80d9c5cc1606368c4a1009a6f507d
authorAlberto Garcia <berto@igalia.com>
Tue, 31 Jan 2017 16:09:54 +0000 (31 18:09 +0200)
committerMax Reitz <mreitz@redhat.com>
Sat, 11 Feb 2017 23:47:43 +0000 (12 00:47 +0100)
tree6f932acb0edf131dd41de828940994b6b0a9314e
parent7061a078984ba7d08b8b80686ad98c5162e56fbd
qemu-io: don't allow I/O operations larger than BDRV_REQUEST_MAX_BYTES

Passing a request size larger than BDRV_REQUEST_MAX_BYTES to any of the
I/O commands results in an error. While 'read' and 'write' handle the
error correctly, 'aio_read' and 'aio_write' hit an assertion:

blk_aio_read_entry: Assertion `rwco->qiov->size == acb->bytes' failed.

The reason is that the QEMU I/O code cannot handle request sizes
larger than BDRV_REQUEST_MAX_BYTES, so this patch makes qemu-io check
that all values are within range.

Signed-off-by: Alberto Garcia <berto@igalia.com>
Message-id: 79f66648c685929a144396bda24d13a207131dcf.1485878688.git.berto@igalia.com
[mreitz: Use BDRV_REQUEST_MAX_BYTES instead of INT_MAX]
Signed-off-by: Max Reitz <mreitz@redhat.com>
qemu-io-cmds.c