diff options
author | Gerd Hoffmann | 2016-04-26 14:11:34 +0200 |
---|---|---|
committer | Gerd Hoffmann | 2016-05-02 16:02:59 +0200 |
commit | bfa0f151a564a83b5a26f3e917da98674bf3cf62 (patch) | |
tree | 7ba373d1fdc530b18d46c9d50ee798eb9705c566 /hw/display/vga.c | |
parent | vga: fix banked access bounds checking (CVE-2016-3710) (diff) | |
download | qemu-bfa0f151a564a83b5a26f3e917da98674bf3cf62.tar.gz qemu-bfa0f151a564a83b5a26f3e917da98674bf3cf62.tar.xz qemu-bfa0f151a564a83b5a26f3e917da98674bf3cf62.zip |
vga: add vbe_enabled() helper
Makes code a bit easier to read.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'hw/display/vga.c')
-rw-r--r-- | hw/display/vga.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/hw/display/vga.c b/hw/display/vga.c index b9191ca6aa..0c1c5b5381 100644 --- a/hw/display/vga.c +++ b/hw/display/vga.c @@ -142,6 +142,11 @@ static uint32_t expand4[256]; static uint16_t expand2[256]; static uint8_t expand4to8[16]; +static inline bool vbe_enabled(VGACommonState *s) +{ + return s->vbe_regs[VBE_DISPI_INDEX_ENABLE] & VBE_DISPI_ENABLED; +} + static void vga_update_memory_access(VGACommonState *s) { hwaddr base, offset, size; @@ -564,7 +569,7 @@ static void vbe_fixup_regs(VGACommonState *s) uint16_t *r = s->vbe_regs; uint32_t bits, linelength, maxy, offset; - if (!(r[VBE_DISPI_INDEX_ENABLE] & VBE_DISPI_ENABLED)) { + if (!vbe_enabled(s)) { /* vbe is turned off -- nothing to do */ return; } @@ -1058,7 +1063,7 @@ static void vga_get_offsets(VGACommonState *s, { uint32_t start_addr, line_offset, line_compare; - if (s->vbe_regs[VBE_DISPI_INDEX_ENABLE] & VBE_DISPI_ENABLED) { + if (vbe_enabled(s)) { line_offset = s->vbe_line_offset; start_addr = s->vbe_start_addr; line_compare = 65535; @@ -1383,7 +1388,7 @@ static int vga_get_bpp(VGACommonState *s) { int ret; - if (s->vbe_regs[VBE_DISPI_INDEX_ENABLE] & VBE_DISPI_ENABLED) { + if (vbe_enabled(s)) { ret = s->vbe_regs[VBE_DISPI_INDEX_BPP]; } else { ret = 0; @@ -1395,7 +1400,7 @@ static void vga_get_resolution(VGACommonState *s, int *pwidth, int *pheight) { int width, height; - if (s->vbe_regs[VBE_DISPI_INDEX_ENABLE] & VBE_DISPI_ENABLED) { + if (vbe_enabled(s)) { width = s->vbe_regs[VBE_DISPI_INDEX_XRES]; height = s->vbe_regs[VBE_DISPI_INDEX_YRES]; } else { |