diff --git a/src/character.c b/src/character.c index 5753e883c32..b16c9fd6b8b 100644 --- a/src/character.c +++ b/src/character.c @@ -394,10 +394,14 @@ lisp_string_width (Lisp_Object string, ptrdiff_t from, ptrdiff_t to, SBYTES (default_font)))) { Lisp_Object font_info = Ffont_info (default_font, Qnil); - font_width = AREF (font_info, 11); - if (font_info <= 0) - font_width = AREF (font_info, 10); - } + font_width + = check_integer_range (AREF (font_info, 11), + INT_MIN, INT_MAX); + if (font_width <= 0) + font_width + = check_integer_range (AREF (font_info, 10), + INT_MIN, INT_MAX); + } } thiswidth = (double) pixelwidth / font_width + 0.5; chars = end - i;