diff --git a/CHANGELOG.md b/CHANGELOG.md index 722d384..c4d58e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.4.3] - 2022-06-19 + +### Added + +- Add libFuzzer and AFL fuzzing boilerplate to find panics + +- Add artificial recursion limit during parsing to prevent stack exhaustion. + _This means that groups can be nested by at most 127 levels. I don't think you'll ever run into this limitation, but if you do, you can refactor your expression into variables._ + +### Fixed + +- Fixed crash caused by slicing into a multi-byte UTF-8 code point after a backslash or in a string +- Fixed crash caused by stack exhaustion when parsing a very deeply nested expression + ## [0.4.2] - 2022-06-16 ### Added @@ -162,7 +176,8 @@ The repository was moved to its own organization! 🎉 It also has a new website Initial release -[unreleased]: https://github.com/rulex-rs/rulex/compare/v0.4.2...HEAD +[unreleased]: https://github.com/rulex-rs/rulex/compare/v0.4.3...HEAD +[0.4.3]: https://github.com/rulex-rs/rulex/compare/v0.4.2...v0.4.3 [0.4.2]: https://github.com/rulex-rs/rulex/compare/v0.4.1...v0.4.2 [0.4.1]: https://github.com/rulex-rs/rulex/compare/v0.4...v0.4.1 [0.4.0]: https://github.com/rulex-rs/rulex/compare/v0.3...v0.4 diff --git a/Cargo.lock b/Cargo.lock index 7274e6c..1b8cc8b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -591,7 +591,7 @@ checksum = "49b3de9ec5dc0a3417da371aab17d729997c15010e7fd24ff707773a33bddb64" [[package]] name = "rulex" -version = "0.4.2" +version = "0.4.3" dependencies = [ "arbitrary", "atty", @@ -604,7 +604,7 @@ dependencies = [ [[package]] name = "rulex-bin" -version = "0.4.0" +version = "0.4.3" dependencies = [ "atty", "clap 3.1.18", @@ -615,7 +615,7 @@ dependencies = [ [[package]] name = "rulex-macro" -version = "0.4.2" +version = "0.4.3" dependencies = [ "rulex", ] diff --git a/rulex-bin/Cargo.toml b/rulex-bin/Cargo.toml index e9920b7..a96a0ec 100644 --- a/rulex-bin/Cargo.toml +++ b/rulex-bin/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "rulex-bin" description = "Compile rulex expressions, a new regular expression language" -version = "0.4.0" +version = "0.4.3" edition = "2021" authors = ["Ludwig Stecher "] license = "MIT OR Apache-2.0" @@ -24,7 +24,7 @@ thiserror = "1.0.30" miette = { version = "4.2.1", features = ["fancy"] } [dependencies.rulex] -version = "0.4.2" +version = "0.4.3" path = "../rulex-lib" features = ["dbg", "miette"] diff --git a/rulex-lib/Cargo.toml b/rulex-lib/Cargo.toml index 4092d6e..7a38e4f 100644 --- a/rulex-lib/Cargo.toml +++ b/rulex-lib/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "rulex" description = "A new regular expression language" -version = "0.4.2" +version = "0.4.3" edition = "2021" authors = ["Ludwig Stecher "] license = "MIT OR Apache-2.0" @@ -11,7 +11,7 @@ documentation = "https://docs.rs/rulex" readme = "../README.md" keywords = ["regexp", "regex", "syntax", "parser", "rulex"] categories = ["text-processing", "parser-implementations"] -exclude = ["tests/**"] +exclude = ["tests/**", "fuzz/**", "afl-fuzz/**"] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/rulex-macro/Cargo.toml b/rulex-macro/Cargo.toml index 29fd9f0..302e9a6 100644 --- a/rulex-macro/Cargo.toml +++ b/rulex-macro/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "rulex-macro" description = "Macro for converting rulex expressions to regexes" -version = "0.4.2" +version = "0.4.3" edition = "2021" authors = ["Ludwig Stecher "] license = "MIT OR Apache-2.0" @@ -19,4 +19,4 @@ default = [] diagnostics = [] [dependencies] -rulex = { version = "0.4.2", path = "../rulex-lib" } +rulex = { version = "0.4.3", path = "../rulex-lib" }