diff options
Diffstat (limited to 'meta/recipes-devtools/qemu/qemu/CVE-2016-3712_p1.patch')
-rw-r--r-- | meta/recipes-devtools/qemu/qemu/CVE-2016-3712_p1.patch | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/meta/recipes-devtools/qemu/qemu/CVE-2016-3712_p1.patch b/meta/recipes-devtools/qemu/qemu/CVE-2016-3712_p1.patch new file mode 100644 index 0000000000..07582ef929 --- /dev/null +++ b/meta/recipes-devtools/qemu/qemu/CVE-2016-3712_p1.patch | |||
@@ -0,0 +1,73 @@ | |||
1 | From 46aff2c7e91ef9f372ad38ba5e90c42b9b27ac75 Mon Sep 17 00:00:00 2001 | ||
2 | From: Gerd Hoffmann <kraxel@redhat.com> | ||
3 | Date: Tue, 26 Apr 2016 14:11:34 +0200 | ||
4 | Subject: [PATCH 1/4] vga: add vbe_enabled() helper | ||
5 | |||
6 | Makes code a bit easier to read. | ||
7 | |||
8 | Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> | ||
9 | Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com> | ||
10 | |||
11 | Upstream-Status: Backport | ||
12 | CVE: CVE-2016-3712 patch1 | ||
13 | Signed-off-by: Armin Kuster <akuster@mvista.com> | ||
14 | |||
15 | --- | ||
16 | hw/display/vga.c | 13 +++++++++---- | ||
17 | 1 file changed, 9 insertions(+), 4 deletions(-) | ||
18 | |||
19 | diff --git a/hw/display/vga.c b/hw/display/vga.c | ||
20 | index 442fee9..cc1a682 100644 | ||
21 | --- a/hw/display/vga.c | ||
22 | +++ b/hw/display/vga.c | ||
23 | @@ -140,6 +140,11 @@ static uint32_t expand4[256]; | ||
24 | static uint16_t expand2[256]; | ||
25 | static uint8_t expand4to8[16]; | ||
26 | |||
27 | +static inline bool vbe_enabled(VGACommonState *s) | ||
28 | +{ | ||
29 | + return s->vbe_regs[VBE_DISPI_INDEX_ENABLE] & VBE_DISPI_ENABLED; | ||
30 | +} | ||
31 | + | ||
32 | static void vga_update_memory_access(VGACommonState *s) | ||
33 | { | ||
34 | hwaddr base, offset, size; | ||
35 | @@ -562,7 +567,7 @@ static void vbe_fixup_regs(VGACommonState *s) | ||
36 | uint16_t *r = s->vbe_regs; | ||
37 | uint32_t bits, linelength, maxy, offset; | ||
38 | |||
39 | - if (!(r[VBE_DISPI_INDEX_ENABLE] & VBE_DISPI_ENABLED)) { | ||
40 | + if (!vbe_enabled(s)) { | ||
41 | /* vbe is turned off -- nothing to do */ | ||
42 | return; | ||
43 | } | ||
44 | @@ -1056,7 +1061,7 @@ static void vga_get_offsets(VGACommonState *s, | ||
45 | { | ||
46 | uint32_t start_addr, line_offset, line_compare; | ||
47 | |||
48 | - if (s->vbe_regs[VBE_DISPI_INDEX_ENABLE] & VBE_DISPI_ENABLED) { | ||
49 | + if (vbe_enabled(s)) { | ||
50 | line_offset = s->vbe_line_offset; | ||
51 | start_addr = s->vbe_start_addr; | ||
52 | line_compare = 65535; | ||
53 | @@ -1381,7 +1386,7 @@ static int vga_get_bpp(VGACommonState *s) | ||
54 | { | ||
55 | int ret; | ||
56 | |||
57 | - if (s->vbe_regs[VBE_DISPI_INDEX_ENABLE] & VBE_DISPI_ENABLED) { | ||
58 | + if (vbe_enabled(s)) { | ||
59 | ret = s->vbe_regs[VBE_DISPI_INDEX_BPP]; | ||
60 | } else { | ||
61 | ret = 0; | ||
62 | @@ -1393,7 +1398,7 @@ static void vga_get_resolution(VGACommonState *s, int *pwidth, int *pheight) | ||
63 | { | ||
64 | int width, height; | ||
65 | |||
66 | - if (s->vbe_regs[VBE_DISPI_INDEX_ENABLE] & VBE_DISPI_ENABLED) { | ||
67 | + if (vbe_enabled(s)) { | ||
68 | width = s->vbe_regs[VBE_DISPI_INDEX_XRES]; | ||
69 | height = s->vbe_regs[VBE_DISPI_INDEX_YRES]; | ||
70 | } else { | ||
71 | -- | ||
72 | 2.7.4 | ||
73 | |||