Skip to content
Commit cc883fe4 authored by Fam Zheng's avatar Fam Zheng Committed by Michael Roth
Browse files

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 fc3959e4 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: default avatarFam Zheng <famz@redhat.com>
Message-id: 1431522721-3266-3-git-send-email-famz@redhat.com
Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
(cherry picked from commit 9eeb6dd1)
Conflicts:
	block/io.c

* moved hunks into corresponding location in block.c due to lack of
  61007b31 in v2.3.0
Signed-off-by: default avatarMichael Roth <mdroth@linux.vnet.ibm.com>
parent 4072585e
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment