diff options
author | Miha Zupan <mihazupan.zupan1@gmail.com> | 2024-03-02 22:38:18 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-02 13:38:18 -0800 |
commit | cd5587ddeddecebf6291f8462b4b6c25db433a71 (patch) | |
tree | 0b3a788f2cb24a76ee482f7ef7ab4dac7f5c202e | |
parent | ce6cf4b2e2a8c7d80ed7b31487eaab574d9007fa (diff) |
Skip long values when building Rabin-Karp buckets in SearchValues (#98901)
-rw-r--r-- | src/libraries/System.Private.CoreLib/src/System/SearchValues/Strings/Helpers/RabinKarp.cs | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/libraries/System.Private.CoreLib/src/System/SearchValues/Strings/Helpers/RabinKarp.cs b/src/libraries/System.Private.CoreLib/src/System/SearchValues/Strings/Helpers/RabinKarp.cs index d420c70d16c1..d8970655cb31 100644 --- a/src/libraries/System.Private.CoreLib/src/System/SearchValues/Strings/Helpers/RabinKarp.cs +++ b/src/libraries/System.Private.CoreLib/src/System/SearchValues/Strings/Helpers/RabinKarp.cs @@ -64,6 +64,12 @@ namespace System.Buffers foreach (string value in values) { + if (value.Length > MaxInputLength) + { + // This value can never match. There's no point in including it in the buckets. + continue; + } + nuint hash = 0; for (int i = 0; i < minimumLength; i++) { |