Revision 720db5deeb852b61e40007989c1390295ceece32 authored by Fam Zheng on 01 June 2018, 09:26:40 UTC, committed by Michael Roth on 21 June 2018, 01:45:04 UTC
We don't verify the request range against s->size in the I/O callbacks
except for raw_co_pwritev. This is inconsistent (especially for
raw_co_pwrite_zeroes and raw_co_pdiscard), so fix them, in the meanwhile
make the helper reusable by the coming new callbacks.

Note that in most cases the block layer already verifies the request
byte range against our reported image length, before invoking the driver
callbacks.  The exception is during image creating, after
blk_set_allow_write_beyond_eof(blk, true) is called. But in that case,
the requests are not directly from the user or guest. So there is no
visible behavior change in adding the check code.

The int64_t -> uint64_t inconsistency, as shown by the type casting, is
pre-existing due to the interface.

Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
Message-id: 20180601092648.24614-3-famz@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
(cherry picked from commit 384455385248762e74a080978f18f0c8f74757fe)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
1 parent 979e7ea
History
File Mode Size
accel
audio
backends
block
bsd-user
capstone @ 22ead3e
chardev
contrib
crypto
default-configs
disas
docs
dtc @ 558cd81
fpu
fsdev
gdb-xml
hw
include
io
libdecnumber
linux-headers
linux-user
migration
nbd
net
pc-bios
po
qapi
qga
qobject
qom
replay
roms
scripts
scsi
slirp
stubs
target
tcg
tests
trace
ui
util
.dir-locals.el -rw-r--r-- 75 bytes
.editorconfig -rw-r--r-- 200 bytes
.exrc -rw-r--r-- 220 bytes
.gdbinit -rw-r--r-- 326 bytes
.gitignore -rw-r--r-- 2.5 KB
.gitmodules -rw-r--r-- 1.3 KB
.mailmap -rw-r--r-- 1.4 KB
.shippable.yml -rw-r--r-- 1.9 KB
.travis.yml -rw-r--r-- 6.4 KB
CODING_STYLE -rw-r--r-- 5.7 KB
COPYING -rw-r--r-- 17.6 KB
COPYING.LIB -rw-r--r-- 25.8 KB
COPYING.PYTHON -rw-r--r-- 13.3 KB
Changelog -rw-r--r-- 22.6 KB
HACKING -rw-r--r-- 9.9 KB
LICENSE -rw-r--r-- 840 bytes
MAINTAINERS -rw-r--r-- 40.5 KB
Makefile -rw-r--r-- 32.9 KB
Makefile.objs -rw-r--r-- 5.7 KB
Makefile.target -rw-r--r-- 6.4 KB
README -rw-r--r-- 3.5 KB
VERSION -rw-r--r-- 7 bytes
arch_init.c -rw-r--r-- 3.1 KB
balloon.c -rw-r--r-- 3.4 KB
block.c -rw-r--r-- 151.3 KB
blockdev-nbd.c -rw-r--r-- 5.1 KB
blockdev.c -rw-r--r-- 121.0 KB
blockjob.c -rw-r--r-- 25.6 KB
bootdevice.c -rw-r--r-- 9.2 KB
bt-host.c -rw-r--r-- 5.2 KB
bt-vhci.c -rw-r--r-- 4.5 KB
configure -rwxr-xr-x 174.5 KB
cpus-common.c -rw-r--r-- 10.1 KB
cpus.c -rw-r--r-- 54.8 KB
device-hotplug.c -rw-r--r-- 2.6 KB
device_tree.c -rw-r--r-- 12.9 KB
disas.c -rw-r--r-- 17.7 KB
dma-helpers.c -rw-r--r-- 7.9 KB
dump.c -rw-r--r-- 59.5 KB
exec.c -rw-r--r-- 108.1 KB
gdbstub.c -rw-r--r-- 52.1 KB
hmp-commands-info.hx -rw-r--r-- 18.0 KB
hmp-commands.hx -rw-r--r-- 52.9 KB
hmp.c -rw-r--r-- 89.4 KB
hmp.h -rw-r--r-- 7.9 KB
ioport.c -rw-r--r-- 9.0 KB
iothread.c -rw-r--r-- 10.3 KB
memory.c -rw-r--r-- 98.2 KB
memory_ldst.inc.c -rw-r--r-- 20.1 KB
memory_mapping.c -rw-r--r-- 10.5 KB
module-common.c -rw-r--r-- 113 bytes
monitor.c -rw-r--r-- 111.8 KB
numa.c -rw-r--r-- 22.5 KB
os-posix.c -rw-r--r-- 7.9 KB
os-win32.c -rw-r--r-- 3.7 KB
qapi-schema.json -rw-r--r-- 81.6 KB
qdev-monitor.c -rw-r--r-- 26.4 KB
qdict-test-data.txt -rw-r--r-- 88.4 KB
qemu-bridge-helper.c -rw-r--r-- 11.0 KB
qemu-doc.texi -rw-r--r-- 75.7 KB
qemu-ga.texi -rw-r--r-- 3.2 KB
qemu-img-cmds.hx -rw-r--r-- 5.2 KB
qemu-img.c -rw-r--r-- 138.1 KB
qemu-img.texi -rw-r--r-- 29.3 KB
qemu-io-cmds.c -rw-r--r-- 59.1 KB
qemu-io.c -rw-r--r-- 16.6 KB
qemu-keymap.c -rw-r--r-- 7.4 KB
qemu-nbd.c -rw-r--r-- 32.8 KB
qemu-nbd.texi -rw-r--r-- 4.3 KB
qemu-option-trace.texi -rw-r--r-- 1021 bytes
qemu-options-wrapper.h -rw-r--r-- 1.0 KB
qemu-options.h -rw-r--r-- 1.4 KB
qemu-options.hx -rw-r--r-- 175.5 KB
qemu-seccomp.c -rw-r--r-- 5.4 KB
qemu-tech.texi -rw-r--r-- 12.3 KB
qemu.nsi -rw-r--r-- 7.1 KB
qemu.sasl -rw-r--r-- 1.8 KB
qmp.c -rw-r--r-- 19.5 KB
qtest.c -rw-r--r-- 20.2 KB
replication.c -rw-r--r-- 2.5 KB
replication.h -rw-r--r-- 5.2 KB
rules.mak -rw-r--r-- 14.1 KB
thunk.c -rw-r--r-- 9.1 KB
tpm.c -rw-r--r-- 5.7 KB
trace-events -rw-r--r-- 5.3 KB
version.rc -rw-r--r-- 790 bytes
vl.c -rw-r--r-- 144.7 KB

README

back to top