diff options
Diffstat (limited to 'include/rapidjson/reader.h')
-rw-r--r-- | include/rapidjson/reader.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/include/rapidjson/reader.h b/include/rapidjson/reader.h index 13d27c29..ce8bf0db 100644 --- a/include/rapidjson/reader.h +++ b/include/rapidjson/reader.h @@ -1028,7 +1028,10 @@ private: RAPIDJSON_PARSE_ERROR(kParseErrorStringUnicodeSurrogateInvalid, escapeOffset); codepoint = (((codepoint - 0xD800) << 10) | (codepoint2 - 0xDC00)) + 0x10000; } - TEncoding::Encode(os, codepoint); + if (!ValidatableEncoder<static_cast<bool>(parseFlags & kParseValidateEncodingFlag)>::template Encode<TEncoding>(os, codepoint)) + { + RAPIDJSON_PARSE_ERROR(kParseErrorStringInvalidEncoding, escapeOffset); + } } else RAPIDJSON_PARSE_ERROR(kParseErrorStringEscapeInvalid, escapeOffset); |