summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-emulation/qemu/files/qemu-2.7.0-CVE-2016-9106.patch')
-rw-r--r--app-emulation/qemu/files/qemu-2.7.0-CVE-2016-9106.patch27
1 files changed, 27 insertions, 0 deletions
diff --git a/app-emulation/qemu/files/qemu-2.7.0-CVE-2016-9106.patch b/app-emulation/qemu/files/qemu-2.7.0-CVE-2016-9106.patch
new file mode 100644
index 000000000000..137272d6b821
--- /dev/null
+++ b/app-emulation/qemu/files/qemu-2.7.0-CVE-2016-9106.patch
@@ -0,0 +1,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;
+