aboutsummaryrefslogtreecommitdiffstats
path: root/vgasrc/bochsvga.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2013-11-30 11:45:46 -0500
committerKevin O'Connor <kevin@koconnor.net>2013-12-04 10:34:17 -0500
commit06c6d476598db2f8b3558cf070d88307da8d895f (patch)
tree4560a18478b3877282b88fbe8717484dc8a9b3c9 /vgasrc/bochsvga.c
parenta9dcc88262dcdad36f11707482a24c1cefab1904 (diff)
downloadseabios-06c6d476598db2f8b3558cf070d88307da8d895f.tar.gz
vgabios: Avoid possible divide by zero in bochsvga_set_displaystart.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'vgasrc/bochsvga.c')
-rw-r--r--vgasrc/bochsvga.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/vgasrc/bochsvga.c b/vgasrc/bochsvga.c
index a19eccbb..6da9d5da 100644
--- a/vgasrc/bochsvga.c
+++ b/vgasrc/bochsvga.c
@@ -212,6 +212,8 @@ bochsvga_set_displaystart(struct vgamode_s *vmode_g, int val)
if (GET_GLOBAL(dispi_found)) {
int bpp = vga_bpp(vmode_g);
int linelength = dispi_read(VBE_DISPI_INDEX_VIRT_WIDTH) * bpp / 8;
+ if (!linelength)
+ return 0;
dispi_write(VBE_DISPI_INDEX_X_OFFSET, (val % linelength) * 8 / bpp);
dispi_write(VBE_DISPI_INDEX_Y_OFFSET, val / linelength);
}