From ede2fb8176f655a1bab693fb421d7f78e524cafe Mon Sep 17 00:00:00 2001 From: rubidium Date: Fri, 19 Nov 2010 19:38:02 +0000 Subject: (svn r21260) -Codechange: make strgen more stringent w.r.t. the allowed characters in strings --- src/strgen/strgen.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/strgen') diff --git a/src/strgen/strgen.cpp b/src/strgen/strgen.cpp index d7a6ab0f0..f5a95b51e 100644 --- a/src/strgen/strgen.cpp +++ b/src/strgen/strgen.cpp @@ -709,6 +709,15 @@ static void HandleString(char *str, bool master) for (tmp = s; *tmp != '\0';) { size_t len = Utf8Validate(tmp); if (len == 0) error("Invalid UTF-8 sequence in '%s'", s); + + WChar c; + Utf8Decode(&c, tmp); + if (c <= 0x001F || // ASCII control character range + (c >= 0xE000 && c <= 0xF8FF) || // Private range + (c >= 0xFFF0 && c <= 0xFFFF)) { // Specials range + error("Unwanted UTF-8 character U+%04X in sequence '%s'", c, s); + } + tmp += len; } -- cgit v1.2.3-54-g00ecf