summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog4
-rw-r--r--src/lread.c5
2 files changed, 7 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 8c2f33b899e..1c1dc7dde72 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,7 @@
+2009-02-27 Kenichi Handa <handa@m17n.org>
+
+ * lread.c (read_escape): Signal an error for invalid \UXXXXXXXX.
+
2009-02-27 Chong Yidong <cyd@stupidchicken.com>
* font.c (font_style_to_value): Set value for unknown symbols to
diff --git a/src/lread.c b/src/lread.c
index 063adba1d9a..e4ba5229e20 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -2205,7 +2205,7 @@ read_escape (readcharfun, stringp)
/* A Unicode escape. We only permit them in strings and characters,
not arbitrarily in the source code, as in some other languages. */
{
- int i = 0;
+ unsigned int i = 0;
int count = 0;
while (++count <= unicode_hex_count)
@@ -2222,7 +2222,8 @@ read_escape (readcharfun, stringp)
break;
}
}
-
+ if (i > 0x10FFFF)
+ error ("Non-Unicode character: 0x%x", i);
return i;
}