xref: /OK3568_Linux_fs/yocto/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-4207.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunFrom 9569f5cb5b4bffa9d3ebc8ba7da1e03830a9a895 Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: Mauro Matteo Cascella <mcascell@redhat.com>
3*4882a593SmuzhiyunDate: Thu, 7 Apr 2022 10:11:06 +0200
4*4882a593SmuzhiyunSubject: [PATCH] display/qxl-render: fix race condition in qxl_cursor
5*4882a593Smuzhiyun (CVE-2021-4207)
6*4882a593SmuzhiyunMIME-Version: 1.0
7*4882a593SmuzhiyunContent-Type: text/plain; charset=utf8
8*4882a593SmuzhiyunContent-Transfer-Encoding: 8bit
9*4882a593Smuzhiyun
10*4882a593SmuzhiyunAvoid fetching 'width' and 'height' a second time to prevent possible
11*4882a593Smuzhiyunrace condition. Refer to security advisory
12*4882a593Smuzhiyunhttps://starlabs.sg/advisories/22-4207/ for more information.
13*4882a593Smuzhiyun
14*4882a593SmuzhiyunFixes: CVE-2021-4207
15*4882a593SmuzhiyunSigned-off-by: Mauro Matteo Cascella <mcascell@redhat.com>
16*4882a593SmuzhiyunReviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
17*4882a593SmuzhiyunMessage-Id: <20220407081106.343235-1-mcascell@redhat.com>
18*4882a593SmuzhiyunSigned-off-by: Gerd Hoffmann <kraxel@redhat.com>
19*4882a593Smuzhiyun
20*4882a593SmuzhiyunUpstream-Status: Backport
21*4882a593Smuzhiyunhttps://git.qemu.org/?p=qemu.git;a=commit;h=9569f5cb5b4bffa9d3ebc8ba7da1e03830a9a895
22*4882a593Smuzhiyun
23*4882a593SmuzhiyunSigned-off-by: Davide Gardenal <davide.gardenal@huawei.com>
24*4882a593Smuzhiyun---
25*4882a593Smuzhiyun hw/display/qxl-render.c | 2 +-
26*4882a593Smuzhiyun 1 file changed, 1 insertion(+), 1 deletion(-)
27*4882a593Smuzhiyun
28*4882a593Smuzhiyundiff --git a/hw/display/qxl-render.c b/hw/display/qxl-render.c
29*4882a593Smuzhiyunindex d28849b..237ed29 100644
30*4882a593Smuzhiyun--- a/hw/display/qxl-render.c
31*4882a593Smuzhiyun+++ b/hw/display/qxl-render.c
32*4882a593Smuzhiyun@@ -266,7 +266,7 @@ static QEMUCursor *qxl_cursor(PCIQXLDevice *qxl, QXLCursor *cursor,
33*4882a593Smuzhiyun         }
34*4882a593Smuzhiyun         break;
35*4882a593Smuzhiyun     case SPICE_CURSOR_TYPE_ALPHA:
36*4882a593Smuzhiyun-        size = sizeof(uint32_t) * cursor->header.width * cursor->header.height;
37*4882a593Smuzhiyun+        size = sizeof(uint32_t) * c->width * c->height;
38*4882a593Smuzhiyun         qxl_unpack_chunks(c->data, size, qxl, &cursor->chunk, group_id);
39*4882a593Smuzhiyun         if (qxl->debug > 2) {
40*4882a593Smuzhiyun             cursor_print_ascii_art(c, "qxl/alpha");
41*4882a593Smuzhiyun--
42*4882a593Smuzhiyun1.8.3.1
43*4882a593Smuzhiyun
44