You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Calling .reset(..) on a meta::Cache can panic if called on a different regex than it was created with (which is the whole point of reset).
What are the steps to reproduce the behavior?
use regex_automata::meta::Regex;fnmain(){let re1 = Regex::new("").unwrap();let re2 = Regex::new("\\b").unwrap();
re1.create_cache().reset(&re2);}
What is the actual behavior?
thread 'main' panicked at /playground/.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-automata-0.4.3/src/meta/wrappers.rs:507:29:
called `Option::unwrap()` on a `None` value
stack backtrace:
0: rust_begin_unwind
at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:645:5
1: core::panicking::panic_fmt
at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panicking.rs:72:14
2: core::panicking::panic
at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panicking.rs:127:5
3: core::option::Option<T>::unwrap
at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/option.rs:931:21
4: regex_automata::meta::wrappers::OnePassCache::reset
at ./.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-automata-0.4.3/src/meta/wrappers.rs:507:13
5: <regex_automata::meta::strategy::Core as regex_automata::meta::strategy::Strategy>::reset_cache
at ./.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-automata-0.4.3/src/meta/strategy.rs:688:9
6: regex_automata::meta::regex::Cache::reset
at ./.cargo/registry/src/index.crates.io-6f17d22bba15001f/regex-automata-0.4.3/src/meta/regex.rs:2385:9
7: playground::main
at ./src/main.rs:6:5
8: core::ops::function::FnOnce::call_once
at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/ops/function.rs:250:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
What is the expected behavior?
It should not panic, and allow using that cache on the new regex.
What version of regex are you using?
Latest /
0.4.4
Describe the bug at a high level.
Calling
.reset(..)
on ameta::Cache
can panic if called on a different regex than it was created with (which is the whole point ofreset
).What are the steps to reproduce the behavior?
What is the actual behavior?
What is the expected behavior?
It should not panic, and allow using that cache on the new regex.
Additional info
One example of a location this panics is: https://github.com/rust-lang/regex/blob/master/regex-automata/src/meta/wrappers.rs#L799
although it looks like other
reset
implementations have similar issues.The text was updated successfully, but these errors were encountered: