Patchwork qcow2: Fix segfault on zero-length write

login
register
mail settings
Submitter Kevin Wolf
Date Jan. 14, 2013, 4:31 p.m.
Message ID <1358181091-3857-1-git-send-email-kwolf@redhat.com>
Download mbox | patch
Permalink /patch/211839/
State New
Headers show

Comments

Kevin Wolf - Jan. 14, 2013, 4:31 p.m.
One of the recent refactoring patches (commit f50f88b9) didn't take care
to initialise l2meta properly, so with zero-length writes, which don't
even enter the write loop, qemu just segfaulted.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 block/qcow2.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Stefan Hajnoczi - Jan. 15, 2013, 8:17 a.m.
On Mon, Jan 14, 2013 at 05:31:31PM +0100, Kevin Wolf wrote:
> One of the recent refactoring patches (commit f50f88b9) didn't take care
> to initialise l2meta properly, so with zero-length writes, which don't
> even enter the write loop, qemu just segfaulted.
> 
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> ---
>  block/qcow2.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)

Thanks, applied to my block tree:
https://github.com/stefanha/qemu/commits/block

Stefan

Patch

diff --git a/block/qcow2.c b/block/qcow2.c
index 76c86a7..9c64917 100644
--- a/block/qcow2.c
+++ b/block/qcow2.c
@@ -759,7 +759,7 @@  static coroutine_fn int qcow2_co_writev(BlockDriverState *bs,
     QEMUIOVector hd_qiov;
     uint64_t bytes_done = 0;
     uint8_t *cluster_data = NULL;
-    QCowL2Meta *l2meta;
+    QCowL2Meta *l2meta = NULL;
 
     trace_qcow2_writev_start_req(qemu_coroutine_self(), sector_num,
                                  remaining_sectors);