rust-regex: prevent nonsensical `.*.*` pattern from happening
authorRaphaël Gomès <rgomes@octobus.net>
Thu, 07 May 2020 23:53:12 +0200
changeset 44833 1e9bfeaec9ba
parent 44832 ad1ec40975aa
child 44834 be6401a25726
rust-regex: prevent nonsensical `.*.*` pattern from happening Differential Revision: https://phab.mercurial-scm.org/D8507
rust/hg-core/src/filepatterns.rs
--- a/rust/hg-core/src/filepatterns.rs	Thu May 07 23:52:08 2020 +0200
+++ b/rust/hg-core/src/filepatterns.rs	Thu May 07 23:53:12 2020 +0200
@@ -181,7 +181,10 @@
             // The `regex` crate accepts `**` while `re2` and Python's `re`
             // do not. Checking for `*` correctly triggers the same error all
             // engines.
-            if pattern[0] == b'^' || pattern[0] == b'*' {
+            if pattern[0] == b'^'
+                || pattern[0] == b'*'
+                || pattern.starts_with(b".*")
+            {
                 return pattern.to_owned();
             }
             [&b".*"[..], pattern].concat()