summaryrefslogtreecommitdiff
blob: 137272d6b82176247c7f4130471acf661ba57b2a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Author: Li Qiang <liqiang6-s@360.cn>
Date:   Mon Oct 17 14:13:58 2016 +0200

    9pfs: fix memory leak in v9fs_write
    
    If an error occurs when marshalling the transfer length to the guest, the
    v9fs_write() function doesn't free an IO vector, thus leading to a memory
    leak. This patch fixes the issue.
    
    Signed-off-by: Li Qiang <liqiang6-s@360.cn>
    Reviewed-by: Greg Kurz <groug@kaod.org>
    [groug, rephrased the changelog]
    Signed-off-by: Greg Kurz <groug@kaod.org>

diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c
index d43a552..e88cf25 100644
--- a/hw/9pfs/9p.c
+++ b/hw/9pfs/9p.c
@@ -2090,7 +2090,7 @@ static void coroutine_fn v9fs_write(void *opaque)
     offset = 7;
     err = pdu_marshal(pdu, offset, "d", total);
     if (err < 0) {
-        goto out;
+        goto out_qiov;
     }
     err += offset;