0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-06-02 18:18:56 +02:00

ircd::json: Restrict escaped unicodes to UTF-16 surrogates.

This commit is contained in:
Jason Volk 2019-08-01 12:26:05 -07:00
parent 92a343f69d
commit 75927abb42

View file

@ -80,10 +80,21 @@ struct ircd::json::input
,"number"
};
// string
const rule<> utf16_surrogate
{
qi::uint_parser
<
uint16_t, // 16 bit width
16U, // base-16 (hex)
4U, // minimum digits
4U // maximum digits
>{}
,"UTF-16 surrogate"
};
const rule<> unicode
{
lit('u') >> qi::uint_parser<uint64_t, 16, 1, 12>{}
lit('u') >> utf16_surrogate
,"escaped unicode"
};