[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs-26 f0db687: Avoid crash inside CFCharacterSetIsLongC
From: |
YAMAMOTO Mitsuharu |
Subject: |
[Emacs-diffs] emacs-26 f0db687: Avoid crash inside CFCharacterSetIsLongCharacterMember (Bug#36507) |
Date: |
Sat, 6 Jul 2019 01:25:31 -0400 (EDT) |
branch: emacs-26
commit f0db687a28546b85a70fea1ce3b1fd4186693e70
Author: YAMAMOTO Mitsuharu <address@hidden>
Commit: YAMAMOTO Mitsuharu <address@hidden>
Avoid crash inside CFCharacterSetIsLongCharacterMember (Bug#36507)
* src/macfont.m (macfont_supports_charset_and_languages_p)
(macfont_has_char): Don't pass integers outside the Unicode codespace to
CFCharacterSetIsLongCharacterMember. Do not merge to master.
---
src/macfont.m | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/macfont.m b/src/macfont.m
index 7f153e1..c9321a7 100644
--- a/src/macfont.m
+++ b/src/macfont.m
@@ -2070,7 +2070,7 @@ macfont_supports_charset_and_languages_p
(CTFontDescriptorRef desc,
ptrdiff_t j;
for (j = 0; j < ASIZE (chars); j++)
- if (TYPE_RANGED_INTEGERP (UTF32Char, AREF (chars, j))
+ if (RANGED_INTEGERP (0, AREF (chars, j), MAX_UNICODE_CHAR)
&& CFCharacterSetIsLongCharacterMember (desc_charset,
XFASTINT (AREF
(chars, j))))
break;
@@ -2705,6 +2705,9 @@ macfont_has_char (Lisp_Object font, int c)
int result;
CFCharacterSetRef charset;
+ if (c < 0 || c > MAX_UNICODE_CHAR)
+ return false;
+
block_input ();
if (FONT_ENTITY_P (font))
{
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] emacs-26 f0db687: Avoid crash inside CFCharacterSetIsLongCharacterMember (Bug#36507),
YAMAMOTO Mitsuharu <=