diff options
Diffstat (limited to 'meta/recipes-devtools/qemu/qemu')
-rw-r--r-- | meta/recipes-devtools/qemu/qemu/CVE-2015-8504.patch | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/meta/recipes-devtools/qemu/qemu/CVE-2015-8504.patch b/meta/recipes-devtools/qemu/qemu/CVE-2015-8504.patch new file mode 100644 index 0000000000..9e660217ff --- /dev/null +++ b/meta/recipes-devtools/qemu/qemu/CVE-2015-8504.patch | |||
@@ -0,0 +1,51 @@ | |||
1 | From 4c65fed8bdf96780735dbdb92a8bd0d6b6526cc3 Mon Sep 17 00:00:00 2001 | ||
2 | From: Prasad J Pandit <pjp@fedoraproject.org> | ||
3 | Date: Thu, 3 Dec 2015 18:54:17 +0530 | ||
4 | Subject: [PATCH] ui: vnc: avoid floating point exception | ||
5 | |||
6 | While sending 'SetPixelFormat' messages to a VNC server, | ||
7 | the client could set the 'red-max', 'green-max' and 'blue-max' | ||
8 | values to be zero. This leads to a floating point exception in | ||
9 | write_png_palette while doing frame buffer updates. | ||
10 | |||
11 | Reported-by: Lian Yihan <lianyihan@360.cn> | ||
12 | Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org> | ||
13 | Reviewed-by: Gerd Hoffmann <kraxel@redhat.com> | ||
14 | Signed-off-by: Peter Maydell <peter.maydell@linaro.org> | ||
15 | |||
16 | Upstream-Status: Backport | ||
17 | |||
18 | http://git.qemu.org/?p=qemu.git;a=commitdiff;h=4c65fed8bdf96780735dbdb92a8 | ||
19 | |||
20 | CVE: CVE-2015-8504 | ||
21 | [Yocto # 9013] | ||
22 | |||
23 | Signed-off-by: Armin Kuster <akuster@mvista.com> | ||
24 | |||
25 | --- | ||
26 | ui/vnc.c | 6 +++--- | ||
27 | 1 file changed, 3 insertions(+), 3 deletions(-) | ||
28 | |||
29 | Index: qemu-2.4.0/ui/vnc.c | ||
30 | =================================================================== | ||
31 | --- qemu-2.4.0.orig/ui/vnc.c | ||
32 | +++ qemu-2.4.0/ui/vnc.c | ||
33 | @@ -2189,15 +2189,15 @@ static void set_pixel_format(VncState *v | ||
34 | return; | ||
35 | } | ||
36 | |||
37 | - vs->client_pf.rmax = red_max; | ||
38 | + vs->client_pf.rmax = red_max ? red_max : 0xFF; | ||
39 | vs->client_pf.rbits = hweight_long(red_max); | ||
40 | vs->client_pf.rshift = red_shift; | ||
41 | vs->client_pf.rmask = red_max << red_shift; | ||
42 | - vs->client_pf.gmax = green_max; | ||
43 | + vs->client_pf.gmax = green_max ? green_max : 0xFF; | ||
44 | vs->client_pf.gbits = hweight_long(green_max); | ||
45 | vs->client_pf.gshift = green_shift; | ||
46 | vs->client_pf.gmask = green_max << green_shift; | ||
47 | - vs->client_pf.bmax = blue_max; | ||
48 | + vs->client_pf.bmax = blue_max ? blue_max : 0xFF; | ||
49 | vs->client_pf.bbits = hweight_long(blue_max); | ||
50 | vs->client_pf.bshift = blue_shift; | ||
51 | vs->client_pf.bmask = blue_max << blue_shift; | ||