summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/qemu/qemu/CVE-2017-13673.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/qemu/qemu/CVE-2017-13673.patch')
-rw-r--r--meta/recipes-devtools/qemu/qemu/CVE-2017-13673.patch53
1 files changed, 53 insertions, 0 deletions
diff --git a/meta/recipes-devtools/qemu/qemu/CVE-2017-13673.patch b/meta/recipes-devtools/qemu/qemu/CVE-2017-13673.patch
new file mode 100644
index 0000000000..3d0695fd66
--- /dev/null
+++ b/meta/recipes-devtools/qemu/qemu/CVE-2017-13673.patch
@@ -0,0 +1,53 @@
1From e65294157d4b69393b3f819c99f4f647452b48e3 Mon Sep 17 00:00:00 2001
2From: Gerd Hoffmann <kraxel@redhat.com>
3Date: Mon, 28 Aug 2017 14:33:07 +0200
4Subject: [PATCH] vga: fix display update region calculation (split screen)
5
6vga display update mis-calculated the region for the dirty bitmap
7snapshot in case split screen mode is used. This can trigger an
8assert in cpu_physical_memory_snapshot_get_dirty().
9
10Impact: DoS for privileged guest users.
11
12Fixes: CVE-2017-13673
13Fixes: fec5e8c92becad223df9d972770522f64aafdb72
14Cc: P J P <ppandit@redhat.com>
15Reported-by: David Buchanan <d@vidbuchanan.co.uk>
16Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
17Message-id: 20170828123307.15392-1-kraxel@redhat.com
18
19Upstream-Status: Backport
20[https://git.qemu.org/?p=qemu.git;a=commit;h=e65294157d4b69393b3f819c99f4f647452b48e3]
21
22CVE: CVE-2017-13673
23
24Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
25---
26 hw/display/vga.c | 10 ++++++++--
27 1 file changed, 8 insertions(+), 2 deletions(-)
28
29diff --git a/hw/display/vga.c b/hw/display/vga.c
30index 3433102..ad7a465 100644
31--- a/hw/display/vga.c
32+++ b/hw/display/vga.c
33@@ -1628,9 +1628,15 @@ static void vga_draw_graphic(VGACommonState *s, int full_update)
34 y1 = 0;
35
36 if (!full_update) {
37+ ram_addr_t region_start = addr1;
38+ ram_addr_t region_end = addr1 + line_offset * height;
39 vga_sync_dirty_bitmap(s);
40- snap = memory_region_snapshot_and_clear_dirty(&s->vram, addr1,
41- line_offset * height,
42+ if (s->line_compare < height) {
43+ /* split screen mode */
44+ region_start = 0;
45+ }
46+ snap = memory_region_snapshot_and_clear_dirty(&s->vram, region_start,
47+ region_end - region_start,
48 DIRTY_MEMORY_VGA);
49 }
50
51--
522.7.4
53