diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2015-11-26 17:34:21 +0100 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2015-11-26 17:34:21 +0100 |
commit | fbe6695a52fa76477b0b143bc81fbde8bf722bb3 (patch) | |
tree | 0d047dc78d36c38396162eb4f343c8919b75a51e | |
parent | 0fb857f14ebd2ce7acc3905ade87abf0429202fd (diff) | |
parent | 25b605a3a2310a6bc9822491e3925b606c9940b3 (diff) | |
download | Nim-fbe6695a52fa76477b0b143bc81fbde8bf722bb3.tar.gz |
Merge pull request #3594 from theduke/unicode-validate-overlong
validateUtf8: catch overlong ascii
-rw-r--r-- | lib/pure/unicode.nim | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/pure/unicode.nim b/lib/pure/unicode.nim index b059a7315..45f52eb7f 100644 --- a/lib/pure/unicode.nim +++ b/lib/pure/unicode.nim @@ -114,6 +114,7 @@ proc validateUtf8*(s: string): int = if ord(s[i]) <=% 127: inc(i) elif ord(s[i]) shr 5 == 0b110: + if ord(s[i]) < 0xc2: return i # Catch overlong ascii representations. if i+1 < L and ord(s[i+1]) shr 6 == 0b10: inc(i, 2) else: return i elif ord(s[i]) shr 4 == 0b1110: |