]> git.proxmox.com Git - qemu.git/commitdiff
block: Free iovec arrays allocated by multiwrite_merge()
authorStefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Wed, 21 Apr 2010 19:35:45 +0000 (20:35 +0100)
committerKevin Wolf <kwolf@redhat.com>
Fri, 23 Apr 2010 14:21:58 +0000 (16:21 +0200)
A new iovec array is allocated when creating a merged write request.
This patch ensures that the iovec array is deleted in addition to its
qiov owner.

Reported-by: Leszek Urbanski <tygrys@moo.pl>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block.c

diff --git a/block.c b/block.c
index 12cf434afe3fff15e1087e1b6e95d104d45af635..7974215ea4767c2d0a70c63d6abb44f27c67776f 100644 (file)
--- a/block.c
+++ b/block.c
@@ -1739,6 +1739,9 @@ static void multiwrite_user_cb(MultiwriteCB *mcb)
 
     for (i = 0; i < mcb->num_callbacks; i++) {
         mcb->callbacks[i].cb(mcb->callbacks[i].opaque, mcb->error);
+        if (mcb->callbacks[i].free_qiov) {
+            qemu_iovec_destroy(mcb->callbacks[i].free_qiov);
+        }
         qemu_free(mcb->callbacks[i].free_qiov);
         qemu_vfree(mcb->callbacks[i].free_buf);
     }