DragonFlyBSD Kernel Audit
DF-1602 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/misc/syscons/scvgarndr.c b/sys/dev/misc/syscons/scvgarndr.c
--- a/sys/dev/misc/syscons/scvgarndr.c
+++ b/sys/dev/misc/syscons/scvgarndr.c
@@ -339,6 +339,8 @@
 	/* prepare mousepointer char's bitmaps */
 	pos = (y / scp->font_height - scp->yoff) * scp->xsize +
 	      x / scp->font_width - scp->xoff;
+	if (pos < 0 || pos + scp->xsize + 1 >= scp->xsize * scp->ysize)
+		return;
 	bcopy(scp->font + sc_vtb_getc(&scp->scr, pos) * scp->font_height,
 	      &font_buf[0], scp->font_height);
 	bcopy(scp->font + sc_vtb_getc(&scp->scr, pos + 1) * scp->font_height,