summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/qemu/qemu/CVE-2016-3712_p1.patch
diff options
context:
space:
mode:
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.patch73
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 @@
1From 46aff2c7e91ef9f372ad38ba5e90c42b9b27ac75 Mon Sep 17 00:00:00 2001
2From: Gerd Hoffmann <kraxel@redhat.com>
3Date: Tue, 26 Apr 2016 14:11:34 +0200
4Subject: [PATCH 1/4] vga: add vbe_enabled() helper
5
6Makes code a bit easier to read.
7
8Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
9Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
10
11Upstream-Status: Backport
12CVE: CVE-2016-3712 patch1
13Signed-off-by: Armin Kuster <akuster@mvista.com>
14
15---
16 hw/display/vga.c | 13 +++++++++----
17 1 file changed, 9 insertions(+), 4 deletions(-)
18
19diff --git a/hw/display/vga.c b/hw/display/vga.c
20index 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--
722.7.4
73