From: Eli Zaretskii Date: Tue, 20 Oct 2020 15:27:47 +0000 (+0300) Subject: Avoid assertion violations in malformed Unicode escapes X-Git-Tag: emacs-28.0.90~5524 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=d3c3fe781424c866ad64ce9a8e3b649b30a0b5ae;p=emacs.git Avoid assertion violations in malformed Unicode escapes * src/lread.c (read_escape): Produce better diagnostic for malformed \u Unicode escapes, while avoiding assertion violation when READCHAR returns -1 because the input is exhausted. (Bug#44084) --- diff --git a/src/lread.c b/src/lread.c index 4b788e99407..a3d5fd7bb81 100644 --- a/src/lread.c +++ b/src/lread.c @@ -2573,6 +2573,13 @@ read_escape (Lisp_Object readcharfun, bool stringp) while (++count <= unicode_hex_count) { c = READCHAR; + if (c < 0) + { + if (unicode_hex_count > 4) + error ("Malformed Unicode escape: \\U%x", i); + else + error ("Malformed Unicode escape: \\u%x", i); + } /* `isdigit' and `isalpha' may be locale-specific, which we don't want. */ int digit = char_hexdigit (c);