Commit 272d7089 authored by Peilin Ye's avatar Peilin Ye Committed by Daniel Vetter
Browse files

Fonts: Support FONT_EXTRA_WORDS macros for font_6x8



Recently, in commit 6735b463 ("Fonts: Support FONT_EXTRA_WORDS macros
for built-in fonts"), we wrapped each of our built-in data buffers in a
`font_data` structure, in order to use the following macros on them, see
include/linux/font.h:

	#define REFCOUNT(fd)	(((int *)(fd))[-1])
	#define FNTSIZE(fd)	(((int *)(fd))[-2])
	#define FNTCHARCNT(fd)	(((int *)(fd))[-3])
	#define FNTSUM(fd)	(((int *)(fd))[-4])

	#define FONT_EXTRA_WORDS 4

Do the same thing to our new 6x8 font. For built-in fonts, currently we
only use FNTSIZE(). Since this is only a temporary solution for an
out-of-bounds issue in the framebuffer layer (see commit 5af08640
("fbcon: Fix global-out-of-bounds read in fbcon_get_font()")), all the
three other fields are intentionally set to zero in order to discourage
using these negative-indexing macros.

Signed-off-by: default avatarPeilin Ye <yepeilin.cs@gmail.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/926453876c92caac34cba8545716a491754d04d5.1603037079.git.yepeilin.cs@gmail.com
parent eda4a7bf
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -3,8 +3,8 @@

#define FONTDATAMAX 2048

static const unsigned char fontdata_6x8[FONTDATAMAX] = {

static struct font_data fontdata_6x8 = {
	{ 0, 0, FONTDATAMAX, 0 }, {
	/* 0 0x00 '^@' */
	0x00, /* 000000 */
	0x00, /* 000000 */
@@ -2564,13 +2564,13 @@ static const unsigned char fontdata_6x8[FONTDATAMAX] = {
	0x00, /* 000000 */
	0x00, /* 000000 */
	0x00, /* 000000 */
};
} };

const struct font_desc font_6x8 = {
	.idx	= FONT6x8_IDX,
	.name	= "6x8",
	.width	= 6,
	.height	= 8,
	.data	= fontdata_6x8,
	.data	= fontdata_6x8.data,
	.pref	= 0,
};