From ba9bdc79f4534c99eb281cd98a71f99d7bdb6849 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Konvi=C4=8Dka?= <konvicka.g630@gmail.com>
Date: Fri, 12 Jan 2024 10:38:59 +0100
Subject: [PATCH] security: Disable backtracking at regex

---
 LanguageRecogniser/Cpp/CppClassDiagramVisitor.cs | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/LanguageRecogniser/Cpp/CppClassDiagramVisitor.cs b/LanguageRecogniser/Cpp/CppClassDiagramVisitor.cs
index 5304757..ba6ae40 100644
--- a/LanguageRecogniser/Cpp/CppClassDiagramVisitor.cs
+++ b/LanguageRecogniser/Cpp/CppClassDiagramVisitor.cs
@@ -144,8 +144,8 @@ public class CppClassDiagramVisitor : CPP14ParserBaseVisitor<object>
         string compositionPattern = @"^(?:std::)?(?:vector<)?(\w+)>?$";
 
         // Check if the property type matches aggregation or composition
-        Match aggregationMatch = Regex.Match(atribute.Type, aggregationPattern);
-        Match compositionMatch = Regex.Match(atribute.Type, compositionPattern);
+        Match aggregationMatch = Regex.Match(atribute.Type, aggregationPattern, RegexOptions.NonBacktracking);
+        Match compositionMatch = Regex.Match(atribute.Type, compositionPattern, RegexOptions.NonBacktracking);
         int groupMatch = 1;
         if (aggregationMatch.Success && !string.IsNullOrEmpty(aggregationMatch.Groups[groupMatch].Value))
         {
-- 
GitLab