]> git.ipfire.org Git - thirdparty/qemu.git/commit
block: Fix NULL deference for unaligned write if qiov is NULL
authorFam Zheng <famz@redhat.com>
Wed, 13 May 2015 13:12:00 +0000 (13:12 +0000)
committerStefan Hajnoczi <stefanha@redhat.com>
Fri, 22 May 2015 08:37:33 +0000 (09:37 +0100)
commit9eeb6dd1b27bd57eb4e3869290e87feac8e8b226
tree317043affdb0927412984180dfb38aa8b993aed2
parentd01c07f2221ca39ab2dd9e55932d99db98103b30
block: Fix NULL deference for unaligned write if qiov is NULL

For zero write, callers pass in NULL qiov (qemu-io "write -z" or
scsi-disk "write same").

Commit fc3959e466 fixed bdrv_co_write_zeroes which is the common case
for this bug, but it still exists in bdrv_aio_write_zeroes. A simpler
fix would be in bdrv_co_do_pwritev which is the NULL dereference point
and covers both cases.

So don't access it in bdrv_co_do_pwritev in this case, use three aligned
writes.

[Initialize ret to 0 in bdrv_co_do_zero_pwritev() to avoid uninitialized
variable warning with gcc 4.9.2.
--Stefan]

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-id: 1431522721-3266-3-git-send-email-famz@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
block/io.c