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>
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;