diff options
author | Christian Stenger <christian.stenger@qt.io> | 2020-05-29 12:11:04 +0200 |
---|---|---|
committer | Christian Stenger <christian.stenger@qt.io> | 2020-06-11 08:51:05 +0000 |
commit | d41502ebb0d9223704d2807407f4cdeb8446f2c9 (patch) | |
tree | 0eff50cecedea9d93d81665831cf9a7719471c10 | |
parent | 3f089613227784b6b0aaf45b4648af29ea7e3379 (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.g | 2 | ||||
-rw-r--r-- | src/libs/glsl/glslparser.cpp | 2 |
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) { |