summaryrefslogtreecommitdiffstats
path: root/chars.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2014-10-28 13:24:44 +0000
committerIngo Schwarze <schwarze@openbsd.org>2014-10-28 13:24:44 +0000
commit1af40e20be48508da80ee8a5ee06a4f34351a59c (patch)
tree49e6672afa0b366d22914b65f4b919f77d397e5f /chars.c
parent06dca5ea40d18f0b1eeb965602aa2749e1c39f48 (diff)
downloadmandoc-1af40e20be48508da80ee8a5ee06a4f34351a59c.tar.gz
Tighten Unicode escape name parsing.
Accept only 0xXXXX, 0xYXXXX, 0x10XXXX with Y != 0. This simplifies mchars_num2uc().
Diffstat (limited to 'chars.c')
-rw-r--r--chars.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/chars.c b/chars.c
index 6c217e43..eb53d20c 100644
--- a/chars.c
+++ b/chars.c
@@ -123,14 +123,9 @@ mchars_num2uc(const char *p, size_t sz)
{
int i;
- if ((i = mandoc_strntoi(p, sz, 16)) < 0)
- return(0xFFFD);
-
- /*
- * XXX Code is missing here to exclude bogus ranges.
- */
-
- return(i <= 0x10FFFF ? i : 0xFFFD);
+ i = mandoc_strntoi(p, sz, 16);
+ assert(i >= 0 && i <= 0x10FFFF);
+ return(i);
}
const char *