summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus/Parser.cpp
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@nokia.com>2010-01-22 16:06:41 +0100
committerErik Verbruggen <erik.verbruggen@nokia.com>2010-01-22 16:07:26 +0100
commit4912ffe7297d80f1179041a5e9d740bc0913ac21 (patch)
treef4af1b3eedc7e686e1b690d6f4f7079a80712c7c /src/shared/cplusplus/Parser.cpp
parentd3acff747cce2b1432c146c722caeb2381993691 (diff)
downloadqt-creator-4912ffe7297d80f1179041a5e9d740bc0913ac21.tar.gz
Temporary fix to prevent the parser from going too deep into recursion.
Diffstat (limited to 'src/shared/cplusplus/Parser.cpp')
-rw-r--r--src/shared/cplusplus/Parser.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp
index 69ff99708f..44f299847a 100644
--- a/src/shared/cplusplus/Parser.cpp
+++ b/src/shared/cplusplus/Parser.cpp
@@ -4507,7 +4507,13 @@ bool Parser::parseConstantExpression(ExpressionAST *&node)
bool Parser::parseExpression(ExpressionAST *&node)
{
DEBUG_THIS_RULE();
- return parseCommaExpression(node);
+ if (depth > 100)
+ return false;
+
+ ++depth;
+ bool result = parseCommaExpression(node);
+ --depth;
+ return result;
}
bool Parser::parseCommaExpression(ExpressionAST *&node)