mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-23 19:03:59 +08:00
libcpp: reject codepoints above 0x10FFFF
Unicode does not support such values because they are unrepresentable in UTF-16. libcpp/ * charset.cc: Reject encodings of codepoints above 0x10FFFF. UTF-16 does not support such codepoints and therefore all Unicode rejects such values. Signed-off-by: Ben Boeckel <ben.boeckel@kitware.com>
This commit is contained in:
parent
dbcbc858c7
commit
c1dbaa6656
@ -1886,6 +1886,13 @@ cpp_valid_utf8_p (const char *buffer, size_t num_bytes)
|
||||
int err = one_utf8_to_cppchar (&iter, &bytesleft, &cp);
|
||||
if (err)
|
||||
return false;
|
||||
|
||||
/* Additionally, Unicode declares that all codepoints above 0010FFFF are
|
||||
invalid because they cannot be represented in UTF-16.
|
||||
|
||||
Reject such values.*/
|
||||
if (cp >= UCS_LIMIT)
|
||||
return false;
|
||||
}
|
||||
/* No problems encountered. */
|
||||
return true;
|
||||
|
Loading…
Reference in New Issue
Block a user