From d257b3974c9c7f47b29e9b695ffdd9de66895720 Mon Sep 17 00:00:00 2001 From: Neil South Date: Wed, 11 Oct 2023 14:31:07 +0100 Subject: [PATCH 1/2] add timeout to regex Signed-off-by: Neil South --- src/WorkflowManager/ConditionsResolver/Resovler/Conditional.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/WorkflowManager/ConditionsResolver/Resovler/Conditional.cs b/src/WorkflowManager/ConditionsResolver/Resovler/Conditional.cs index 9580ec77e..8d1394364 100644 --- a/src/WorkflowManager/ConditionsResolver/Resovler/Conditional.cs +++ b/src/WorkflowManager/ConditionsResolver/Resovler/Conditional.cs @@ -211,7 +211,7 @@ private int ParseChars(ReadOnlySpan input, int currentIndex, char currentC private int ParseExtendedOperators(ReadOnlySpan input, int currentIndex) { - var currentWord = Regex.Match(input.ToString(), @"\'\w+\'|^\w+").Value; + var currentWord = Regex.Match(input.ToString(), @"\'\w+\'|^\w+", new RegexOptions(), TimeSpan.FromSeconds(1)).Value; if (currentWord.ToUpper() == CONTAINS && currentIndex != 0) { From aa3d0b1fdcf1f3f93cc733ba37dc8e52ba19f304 Mon Sep 17 00:00:00 2001 From: Neil South Date: Wed, 11 Oct 2023 14:33:01 +0100 Subject: [PATCH 2/2] add timeout to regex Signed-off-by: Neil South --- src/WorkflowManager/ConditionsResolver/Resovler/Conditional.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/WorkflowManager/ConditionsResolver/Resovler/Conditional.cs b/src/WorkflowManager/ConditionsResolver/Resovler/Conditional.cs index 8d1394364..371353ca7 100644 --- a/src/WorkflowManager/ConditionsResolver/Resovler/Conditional.cs +++ b/src/WorkflowManager/ConditionsResolver/Resovler/Conditional.cs @@ -92,7 +92,7 @@ public int Parse(ReadOnlySpan input, int currentIndex = 0) { var pattern = @"(?i:\bnull\b|''|""""|\bundefined\b)"; var replace = NULL; - input = Regex.Replace(input.ToString(), pattern, replace, RegexOptions.IgnoreCase); + input = Regex.Replace(input.ToString(), pattern, replace, RegexOptions.IgnoreCase, TimeSpan.FromSeconds(1)); } if (input.IsEmpty || input.IsWhiteSpace())