diff --git a/src/preserves/private/parsing.nim b/src/preserves/private/parsing.nim index 2bd421c..43ee4db 100644 --- a/src/preserves/private/parsing.nim +++ b/src/preserves/private/parsing.nim @@ -188,6 +188,8 @@ proc parsePreserves*(text: string): Preserve[void] = Preserves.String <- Preserves.String: var v = Value(kind: pkString, string: newStringOfCap(len($1))) unescape(v.string, $1) + if validateUtf8(v.string) != -1: + raise newException(ValueError, "Preserves text contains an invalid UTF-8 sequence") pushStack v Preserves.charByteString <- Preserves.charByteString: