Skip to content

Commit 1505a6a

Browse files
committed
⚡️ RegEx timeout
1 parent 48f4e11 commit 1505a6a

File tree

4 files changed

+12
-6
lines changed

4 files changed

+12
-6
lines changed

src/Sidio.Text.Slugify/Processors/HyphenProcessor.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public partial class HyphenProcessor : SlugifyProcessor
1111
private const string Hyphen = "-";
1212

1313
#if !NET7_0_OR_GREATER
14-
private static readonly Regex HyphensRegex = new ("\\s", RegexOptions.Compiled);
14+
private static readonly Regex HyphensRegex = new("\\s", RegexOptions.Compiled, TimeSpan.FromMilliseconds(ProcessorConstants.RegexMatchTimeoutInMilliseconds));
1515
#endif
1616

1717
/// <inheritdoc />
@@ -28,7 +28,7 @@ protected override string ProcessInput(string input)
2828
public override int Order => DefaultProcessorOrder.HyphenProcessor;
2929

3030
#if NET7_0_OR_GREATER
31-
[GeneratedRegex("\\s")]
31+
[GeneratedRegex("\\s", RegexOptions.None, ProcessorConstants.RegexMatchTimeoutInMilliseconds)]
3232
private static partial Regex HypensRegex();
3333
#endif
3434
}

src/Sidio.Text.Slugify/Processors/MultiSpaceProcessor.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ namespace Sidio.Text.Slugify.Processors;
99
public partial class MultiSpaceProcessor : SlugifyProcessor
1010
{
1111
#if !NET7_0_OR_GREATER
12-
private static readonly Regex MultipleSpacesRegex = new ("\\s+", RegexOptions.Compiled);
12+
private static readonly Regex MultipleSpacesRegex = new ("\\s+", RegexOptions.Compiled, TimeSpan.FromMilliseconds(ProcessorConstants.RegexMatchTimeoutInMilliseconds));
1313
#endif
1414

1515
/// <inheritdoc />
@@ -26,7 +26,7 @@ protected override string ProcessInput(string input)
2626
public override int Order => DefaultProcessorOrder.MultiSpaceProcessor;
2727

2828
#if NET7_0_OR_GREATER
29-
[GeneratedRegex("\\s+")]
29+
[GeneratedRegex("\\s+", RegexOptions.None, ProcessorConstants.RegexMatchTimeoutInMilliseconds)]
3030
private static partial Regex MultipleSpacesRegex();
3131
#endif
3232
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
namespace Sidio.Text.Slugify.Processors;
2+
3+
internal static class ProcessorConstants
4+
{
5+
public const int RegexMatchTimeoutInMilliseconds = 500;
6+
}

src/Sidio.Text.Slugify/Processors/RemoveSpecialCharactersProcessor.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ namespace Sidio.Text.Slugify.Processors;
99
public partial class RemoveSpecialCharactersProcessor : SlugifyProcessor
1010
{
1111
#if !NET7_0_OR_GREATER
12-
private static readonly Regex InvalidCharacterRegex = new ("[^a-zA-Z0-9\\s-]", RegexOptions.Compiled);
12+
private static readonly Regex InvalidCharacterRegex = new ("[^a-zA-Z0-9\\s-]", RegexOptions.Compiled, TimeSpan.FromMilliseconds(ProcessorConstants.RegexMatchTimeoutInMilliseconds));
1313
#endif
1414

1515
/// <inheritdoc />
@@ -26,7 +26,7 @@ protected override string ProcessInput(string input)
2626
public override int Order => DefaultProcessorOrder.RemoveSpecialCharactersProcessor;
2727

2828
#if NET7_0_OR_GREATER
29-
[GeneratedRegex("[^a-zA-Z0-9\\s-]")]
29+
[GeneratedRegex("[^a-zA-Z0-9\\s-]", RegexOptions.None, ProcessorConstants.RegexMatchTimeoutInMilliseconds)]
3030
private static partial Regex InvalidCharacterRegex();
3131
#endif
3232
}

0 commit comments

Comments
 (0)