aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Stenger <christian.stenger@qt.io>2020-05-29 12:11:04 +0200
committerChristian Stenger <christian.stenger@qt.io>2020-06-11 08:51:05 +0000
commitd41502ebb0d9223704d2807407f4cdeb8446f2c9 (patch)
tree0eff50cecedea9d93d81665831cf9a7719471c10
parent3f089613227784b6b0aaf45b4648af29ea7e3379 (diff)
GLSL: Fix freeze on unexpected end of file
Fixes: QTCREATORBUG-24070 Change-Id: I2c503932cb2064f4871a4467c26f7af0efb50bc8 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
-rw-r--r--src/libs/glsl/glsl.g2
-rw-r--r--src/libs/glsl/glslparser.cpp2
2 files changed, 4 insertions, 0 deletions
diff --git a/src/libs/glsl/glsl.g b/src/libs/glsl/glsl.g
index 314cef0bb7..ee9aab833c 100644
--- a/src/libs/glsl/glsl.g
+++ b/src/libs/glsl/glsl.g
@@ -576,6 +576,8 @@ AST *Parser::parse(int startToken)
if (yytoken != -1) {
const QLatin1String s(spell[yytoken]);
message = QString::fromLatin1("Unexpected token `%1'").arg(s);
+ if (yytoken == 0) // do not freeze on unexpected end of file
+ return nullptr;
}
for (; _tos; --_tos) {
diff --git a/src/libs/glsl/glslparser.cpp b/src/libs/glsl/glslparser.cpp
index 17dc26c61f..5b63300682 100644
--- a/src/libs/glsl/glslparser.cpp
+++ b/src/libs/glsl/glslparser.cpp
@@ -166,6 +166,8 @@ AST *Parser::parse(int startToken)
if (yytoken != -1) {
const QLatin1String s(spell[yytoken]);
message = QString::fromLatin1("Unexpected token `%1'").arg(s);
+ if (yytoken == 0) // do not freeze on unexpected end of file
+ return nullptr;
}
for (; _tos; --_tos) {