qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2 0/2] block: Fix unaligned bdrv_aio_write_zeroes
@ 2015-04-24 10:33 Fam Zheng
  2015-04-24 10:33 ` [Qemu-devel] [PATCH v2 1/2] Revert "block: Fix unaligned zero write" Fam Zheng
  2015-04-24 10:33 ` [Qemu-devel] [PATCH v2 2/2] block: Fix NULL deference for unaligned write if qiov is NULL Fam Zheng
  0 siblings, 2 replies; 7+ messages in thread
From: Fam Zheng @ 2015-04-24 10:33 UTC (permalink / raw)
  To: qemu-devel; +Cc: Kevin Wolf, pbonzini, qemu-block, qemu-stable, Stefan Hajnoczi

An unaligned zero write causes NULL deferencing in bdrv_co_do_pwritev. That
path is reachable from bdrv_co_write_zeroes and bdrv_aio_write_zeroes.

You can easily trigger through the former with qemu-io, as the test case added
by 61815d6e0aa. For bdrv_aio_write_zeroes, in common cases there's always a
format driver (which uses 512 alignment), so it would be much rarer to have
unaligned requests (only concerning top level here, when the request goes down
to bs->file, where for example the alignment is 4k, it would then be calling
bdrv_co_write_zeroes because it's in a coroutine).

fc3959e4669a1c fixed bdrv_co_write_zeroes but not bdrv_aio_write_zeroes.  The
lattern is the actually used one by device model. Revert the previous fix, do
it in bdrv_co_do_pwritev, to cover both paths.

v2: Split to three aligned pwritev.

Fam Zheng (2):
  Revert "block: Fix unaligned zero write"
  block: Fix NULL deference for unaligned write if qiov is NULL

 block.c | 121 +++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 66 insertions(+), 55 deletions(-)

-- 
1.9.3

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-04-27  5:17 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-04-24 10:33 [Qemu-devel] [PATCH v2 0/2] block: Fix unaligned bdrv_aio_write_zeroes Fam Zheng
2015-04-24 10:33 ` [Qemu-devel] [PATCH v2 1/2] Revert "block: Fix unaligned zero write" Fam Zheng
2015-04-24 11:12   ` Fam Zheng
2015-04-24 10:33 ` [Qemu-devel] [PATCH v2 2/2] block: Fix NULL deference for unaligned write if qiov is NULL Fam Zheng
2015-04-24 11:00   ` Paolo Bonzini
2015-04-24 11:51     ` Paolo Bonzini
2015-04-27  5:17       ` Fam Zheng

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).