Skip to content

Commit d54c645

Browse files
Increase Regex Timeouts (#165)
1 parent 9f19e1b commit d54c645

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

src/Immediate.Validations.Shared/ValidationResult.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,10 @@ namespace Immediate.Validations.Shared;
1111
/// <summary>
1212
/// Represents the result of an in-progress or completed validation.
1313
/// </summary>
14+
[SuppressMessage("Security", "MA0009:Add regex evaluation timeout", Justification = "Limited danger scope (property names and message templates)")]
1415
public sealed partial class ValidationResult : IEnumerable<ValidationError>
1516
{
16-
[GeneratedRegex("{(?<name>[^{}:]+)(?::(?<format>[^{}]+))?}", RegexOptions.ExplicitCapture, matchTimeoutMilliseconds: 50)]
17+
[GeneratedRegex("{(?<name>[^{}:]+)(?::(?<format>[^{}]+))?}", RegexOptions.ExplicitCapture)]
1718
private static partial Regex FormatRegex();
1819

1920
private List<ValidationError>? _errors;
@@ -244,7 +245,7 @@ private enum MemberIndex { None = 0, Member, Index, Method }
244245
_ => null,
245246
};
246247

247-
[GeneratedRegex(@"(?<=[^A-Z])([A-Z])", RegexOptions.None, matchTimeoutMilliseconds: 10)]
248+
[GeneratedRegex(@"(?<=[^A-Z])([A-Z])", RegexOptions.None)]
248249
private static partial Regex FirstCharInWord();
249250

250251
private static string GetMemberName(MemberInfo member)

src/Immediate.Validations.Shared/Validators/MatchAttribute.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public static bool ValidateProperty(string target, Regex? regex = null, [StringS
4242
if (expr is null)
4343
ThrowInvalidArgumentsException();
4444

45-
regex = new Regex(expr, RegexOptions.None, TimeSpan.FromMilliseconds(100));
45+
regex = new Regex(expr, RegexOptions.None, TimeSpan.FromSeconds(1));
4646
}
4747

4848
return regex.IsMatch(target);

0 commit comments

Comments
 (0)