From 6e305b2ec1db969fa3d3c4554de821454fc2b2d2 Mon Sep 17 00:00:00 2001 From: Anton Popov Date: Tue, 31 Mar 2020 22:25:00 +0300 Subject: [PATCH] fix use-after-free at syntax error --- dbms/src/Parsers/ExpressionElementParsers.cpp | 3 +-- .../01107_tuples_arrays_parsing_exceptions.reference | 2 ++ .../0_stateless/01107_tuples_arrays_parsing_exceptions.sh | 7 +++++++ 3 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 dbms/tests/queries/0_stateless/01107_tuples_arrays_parsing_exceptions.reference create mode 100755 dbms/tests/queries/0_stateless/01107_tuples_arrays_parsing_exceptions.sh diff --git a/dbms/src/Parsers/ExpressionElementParsers.cpp b/dbms/src/Parsers/ExpressionElementParsers.cpp index 59c63f8918..c4e43829da 100644 --- a/dbms/src/Parsers/ExpressionElementParsers.cpp +++ b/dbms/src/Parsers/ExpressionElementParsers.cpp @@ -1026,8 +1026,7 @@ bool ParserCollectionOfLiterals::parseImpl(Pos & pos, ASTPtr & node, } else { - String message = String("comma or ") + getTokenName(closing_bracket); - expected.add(pos, message.c_str()); + expected.add(pos, "comma or closing bracket"); return false; } } diff --git a/dbms/tests/queries/0_stateless/01107_tuples_arrays_parsing_exceptions.reference b/dbms/tests/queries/0_stateless/01107_tuples_arrays_parsing_exceptions.reference new file mode 100644 index 0000000000..a589234b95 --- /dev/null +++ b/dbms/tests/queries/0_stateless/01107_tuples_arrays_parsing_exceptions.reference @@ -0,0 +1,2 @@ +Syntax error +Syntax error diff --git a/dbms/tests/queries/0_stateless/01107_tuples_arrays_parsing_exceptions.sh b/dbms/tests/queries/0_stateless/01107_tuples_arrays_parsing_exceptions.sh new file mode 100755 index 0000000000..96f4a1348a --- /dev/null +++ b/dbms/tests/queries/0_stateless/01107_tuples_arrays_parsing_exceptions.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) +. $CURDIR/../shell_config.sh + +$CLICKHOUSE_CLIENT -q "SELECT (1, 2 2)" 2>&1 | grep -o "Syntax error" +$CLICKHOUSE_CLIENT -q "SELECT [1, 2 2]" 2>&1 | grep -o "Syntax error" \ No newline at end of file -- GitLab