20 lines
640 B
Diff
20 lines
640 B
Diff
--- sys/dev/vt/vt_font.c.orig
|
|
+++ sys/dev/vt/vt_font.c
|
|
@@ -42,6 +42,7 @@
|
|
|
|
/* Some limits to prevent abnormal fonts from being loaded. */
|
|
#define VTFONT_MAXMAPPINGS 65536
|
|
+#define VTFONT_MAXGLYPHS 131072
|
|
#define VTFONT_MAXGLYPHSIZE 2097152
|
|
#define VTFONT_MAXDIMENSION 128
|
|
|
|
@@ -171,7 +172,8 @@
|
|
/* Make sure the dimensions are valid. */
|
|
if (f->width < 1 || f->height < 1)
|
|
return (EINVAL);
|
|
- if (f->width > VTFONT_MAXDIMENSION || f->height > VTFONT_MAXDIMENSION)
|
|
+ if (f->width > VTFONT_MAXDIMENSION || f->height > VTFONT_MAXDIMENSION ||
|
|
+ f->glyph_count > VTFONT_MAXGLYPHS)
|
|
return (E2BIG);
|
|
|
|
/* Not too many mappings. */
|