From 3f8ef886b1e2b17d8ba12a74355ab7e09aec5ed6 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Fri, 6 Mar 2020 17:40:45 +0300 Subject: Restrict buildfiles and testscripts with only Unicode graphic characters, '\t', '\r', and '\n' --- libbuild2/lexer.hxx | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/libbuild2/lexer.hxx b/libbuild2/lexer.hxx index 93992b4..e9a3149 100644 --- a/libbuild2/lexer.hxx +++ b/libbuild2/lexer.hxx @@ -7,6 +7,7 @@ #include #include +#include #include #include @@ -201,10 +202,14 @@ namespace build2 lexer (istream& is, const path_name& name, uint64_t line, const char* escapes, bool set_mode) - : char_scanner (is, true /* crlf */, line), - fail ("error", &name), - name_ (name), - sep_ (false) + : char_scanner (is, + butl::utf8_validator (butl::codepoint_types::graphic, + U"\n\r\t"), + true /* crlf */, + line), + fail ("error", &name), + name_ (name), + sep_ (false) { if (set_mode) mode (lexer_mode::normal, '@', escapes); -- cgit v1.1