summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/parsers/generic.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/parsers/generic.cpp b/src/parsers/generic.cpp
index b2743a4..a6308b3 100644
--- a/src/parsers/generic.cpp
+++ b/src/parsers/generic.cpp
@@ -56,6 +56,18 @@ Node *createParseNode(Node *parent,
return nullptr;
}
+ if (allocations > 1000000)
+ {
+ fatal_error(0, "Plugin error. Infinite loop detected 1");
+ return nullptr;
+ }
+
+ if (parent && parent->indent > 30000)
+ {
+ fatal_error(0, "Plugin error. Infinite loop detected 2");
+ return nullptr;
+ }
+
Node *node = nullptr;
switch (TREE_CODE(gccNode))
{