X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/halibut/blobdiff_plain/416dfe1719254d4718888fdbb0b0ac6d3ad91705..02478c4f78199bda48514bca58e4b912cb86c737:/bk_paper.c diff --git a/bk_paper.c b/bk_paper.c index a8479c7..eb3caf0 100644 --- a/bk_paper.c +++ b/bk_paper.c @@ -1318,7 +1318,9 @@ static int string_width(font_data *font, wchar_t const *string, int *errs) for (; *string; string++) { int index; - index = font->bmp[(unsigned short)*string]; + index = (*string < 0 || *string > 0xFFFF ? 0xFFFF : + font->bmp[*string]); + if (index == 0xFFFF) { if (errs) *errs = 1; @@ -1766,7 +1768,8 @@ static int render_string(page_data *page, font_data *font, int fontsize, textpos = textwid = 0; while (*str) { - glyph = font->bmp[*str]; + glyph = (*str < 0 || *str > 0xFFFF ? 0xFFFF : + font->bmp[*str]); if (glyph == 0xFFFF) { str++;