summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/qemu/qemu/CVE-2021-3544_5.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/qemu/qemu/CVE-2021-3544_5.patch')
-rw-r--r--meta/recipes-devtools/qemu/qemu/CVE-2021-3544_5.patch47
1 files changed, 47 insertions, 0 deletions
diff --git a/meta/recipes-devtools/qemu/qemu/CVE-2021-3544_5.patch b/meta/recipes-devtools/qemu/qemu/CVE-2021-3544_5.patch
new file mode 100644
index 0000000000..e592ce50e2
--- /dev/null
+++ b/meta/recipes-devtools/qemu/qemu/CVE-2021-3544_5.patch
@@ -0,0 +1,47 @@
1From 63736af5a6571d9def93769431e0d7e38c6677bf Mon Sep 17 00:00:00 2001
2From: Li Qiang <liq3ea@163.com>
3Date: Sat, 15 May 2021 20:04:01 -0700
4Subject: [PATCH] vhost-user-gpu: fix memory leak in
5 'virgl_resource_attach_backing' (CVE-2021-3544)
6MIME-Version: 1.0
7Content-Type: text/plain; charset=UTF-8
8Content-Transfer-Encoding: 8bit
9
10If 'virgl_renderer_resource_attach_iov' failed, the 'res_iovs' will
11be leaked.
12
13Fixes: CVE-2021-3544
14Reported-by: Li Qiang <liq3ea@163.com>
15virtio-gpu fix: 33243031da ("virtio-gpu-3d: fix memory leak
16in resource attach backing")
17
18Signed-off-by: Li Qiang <liq3ea@163.com>
19Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
20Message-Id: <20210516030403.107723-7-liq3ea@163.com>
21Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
22
23Upstream-Status: Backport
24CVE: CVE-2021-3544
25Signed-off-by: Armin Kuster <akuster@mvista.com>
26
27---
28 contrib/vhost-user-gpu/virgl.c | 5 ++++-
29 1 file changed, 4 insertions(+), 1 deletion(-)
30
31Index: qemu-4.2.0/contrib/vhost-user-gpu/virgl.c
32===================================================================
33--- qemu-4.2.0.orig/contrib/vhost-user-gpu/virgl.c
34+++ qemu-4.2.0/contrib/vhost-user-gpu/virgl.c
35@@ -283,8 +283,11 @@ virgl_resource_attach_backing(VuGpu *g,
36 return;
37 }
38
39- virgl_renderer_resource_attach_iov(att_rb.resource_id,
40+ ret = virgl_renderer_resource_attach_iov(att_rb.resource_id,
41 res_iovs, att_rb.nr_entries);
42+ if (ret != 0) {
43+ g_free(res_iovs);
44+ }
45 }
46
47 static void