diff options
-rw-r--r-- | src/parsers/generic.cpp | 12 |
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)) { |