Fix validation of overlong UTF-8

It was too strict and Egyptian dicks didn't want to pass,
so we'll do it half-arsedly for a subset.
This commit is contained in:
2020-10-24 19:06:41 +02:00
parent 929229a1d7
commit 9639777814
2 changed files with 6 additions and 8 deletions

View File

@@ -2748,16 +2748,12 @@ utf8_decode (const char **s, size_t len)
}
// In the middle of a character
if (sequence_len == 1)
// or an overlong sequence (subset, possibly MUTF-8, not supported)
if (sequence_len == 1 || *p == 0xC0 || *p == 0xC1)
return -1;
// Check the rest of the sequence
uint32_t cp = *p++ & ~mask;
// Overlong sequence (possibly MUTF-8, not supported)
if (!cp && sequence_len)
return -1;
while (sequence_len && --sequence_len)
{
if (p == end)