summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2015-11-26 17:34:21 +0100
committerAndreas Rumpf <rumpf_a@web.de>2015-11-26 17:34:21 +0100
commitfbe6695a52fa76477b0b143bc81fbde8bf722bb3 (patch)
tree0d047dc78d36c38396162eb4f343c8919b75a51e
parent0fb857f14ebd2ce7acc3905ade87abf0429202fd (diff)
parent25b605a3a2310a6bc9822491e3925b606c9940b3 (diff)
downloadNim-fbe6695a52fa76477b0b143bc81fbde8bf722bb3.tar.gz
Merge pull request #3594 from theduke/unicode-validate-overlong
validateUtf8: catch overlong ascii
-rw-r--r--lib/pure/unicode.nim1
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: