35 lines
1020 B
Diff
35 lines
1020 B
Diff
|
From: Li Qiang <address@hidden>
|
||
|
|
||
|
In 9pfs read dispatch function, it doesn't free two QEMUIOVector
|
||
|
object thus causing potential memory leak. This patch avoid this.
|
||
|
|
||
|
Signed-off-by: Li Qiang <address@hidden>
|
||
|
---
|
||
|
hw/9pfs/9p.c | 5 +++--
|
||
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
||
|
|
||
|
diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c
|
||
|
index 119ee58..543a791 100644
|
||
|
--- a/hw/9pfs/9p.c
|
||
|
+++ b/hw/9pfs/9p.c
|
||
|
@@ -1826,14 +1826,15 @@ static void v9fs_read(void *opaque)
|
||
|
if (len < 0) {
|
||
|
/* IO error return the error */
|
||
|
err = len;
|
||
|
- goto out;
|
||
|
+ goto out_free_iovec;
|
||
|
}
|
||
|
} while (count < max_count && len > 0);
|
||
|
err = pdu_marshal(pdu, offset, "d", count);
|
||
|
if (err < 0) {
|
||
|
- goto out;
|
||
|
+ goto out_free_iovec;
|
||
|
}
|
||
|
err += offset + count;
|
||
|
+out_free_iovec:
|
||
|
qemu_iovec_destroy(&qiov);
|
||
|
qemu_iovec_destroy(&qiov_full);
|
||
|
} else if (fidp->fid_type == P9_FID_XATTR) {
|
||
|
--
|
||
|
1.8.3.1
|