Versioning unification, dependencies update, logging optimization (#2560)

* versioning unification: use x.y.z format everywhere

* do not compile low-level logs (< info level) by default in fuzzers

* update dependencies to the latest versions

* add members to workspace.

* use workspace for common dependencies

* add vscode native support

---------

Co-authored-by: Toka <tokazerkje@outlook.com>
This commit is contained in:
Romain Malmain 2024-10-07 12:03:29 +02:00 committed by GitHub
parent 4fc136cd1c
commit 1fbb18cb99
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
135 changed files with 952 additions and 804 deletions

11
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,11 @@
{
"rust-analyzer.cargo.buildScripts.overrideCommand": [
"cargo",
"check",
"--message-format=json",
],
"rust-analyzer.check.overrideCommand": [
"cargo",
"check",
],
}

View File

@ -4,8 +4,17 @@ members = [
"libafl", "libafl",
"libafl_bolts", "libafl_bolts",
"libafl_cc", "libafl_cc",
"libafl_concolic/symcc_runtime",
"libafl_concolic/symcc_libafl",
"libafl_derive", "libafl_derive",
"libafl_frida",
"libafl_libfuzzer",
"libafl_nyx",
"libafl_targets", "libafl_targets",
"libafl_tinyinst",
"libafl_qemu",
"libafl_qemu/libafl_qemu_build",
"libafl_qemu/libafl_qemu_sys",
"libafl_sugar", "libafl_sugar",
"libafl_concolic/test/dump_constraints", "libafl_concolic/test/dump_constraints",
"libafl_concolic/test/runtime_test", "libafl_concolic/test/runtime_test",
@ -25,6 +34,7 @@ default-members = [
exclude = [ exclude = [
"bindings", "bindings",
"fuzzers", "fuzzers",
"libafl_libfuzzer_runtime",
"utils/noaslr", "utils/noaslr",
"utils/gdb_qemu", "utils/gdb_qemu",
"utils/libafl_fmt", "utils/libafl_fmt",
@ -32,22 +42,50 @@ exclude = [
"utils/multi_machine_generator", "utils/multi_machine_generator",
"scripts", "scripts",
# additional crates # additional crates
"libafl_concolic/symcc_runtime",
"libafl_concolic/symcc_libafl",
"libafl_frida",
"libafl_libfuzzer",
"libafl_libfuzzer_runtime",
"libafl_nyx",
"libafl_qemu",
"libafl_tinyinst",
"libafl_qemu/libafl_qemu_build",
"libafl_qemu/libafl_qemu_sys",
"libafl_concolic/test/symcc/util/symcc_fuzzing_helper", "libafl_concolic/test/symcc/util/symcc_fuzzing_helper",
] ]
[workspace.package] [workspace.package]
version = "0.13.2" version = "0.13.2"
[workspace.dependencies]
ahash = { version = "0.8.11", default-features = false } # The hash function already used in hashbrown
backtrace = { version = "0.3.74", default-features = false } # Used to get the stacktrace in StacktraceObserver
bindgen = "0.70.1"
clap = "4.5.18"
cc = "1.1.21"
document-features = "0.2.10"
hashbrown = { version = "0.14.5", default-features = false } # A faster hashmap, nostd compatible
libc = "0.2.159" # For (*nix) libc
log = "0.4.22"
meminterval = "0.4.1"
mimalloc = { version = "0.1.43", default-features = false }
nix = { version = "0.29.0", default-features = false }
num_enum = { version = "0.7.3", default-features = false }
num-traits = { version = "0.2.19", default-features = false }
paste = "1.0.15"
postcard = { version = "1.0.10", features = [
"alloc",
], default-features = false } # no_std compatible serde serialization format
pyo3 = "0.22.3"
pyo3-build-config = "0.22.3"
pyo3-log = "0.11.0"
rangemap = "1.5.1"
regex = "1.10.6"
rustversion = "1.0.17"
serde = { version = "1.0.210", default-features = false } # serialization lib
serial_test = { version = "3.1.1", default-features = false }
serde_json = { version = "1.0.128", default-features = false }
serde_yaml = { version = "0.9.34" } # For parsing the injections yaml file
strum = "0.26.3"
strum_macros = "0.26.4"
toml = "0.8.19" # For parsing the injections toml file
typed-builder = "0.20.0" # Implement the builder pattern at compiletime
uuid = { version = "1.10.0", features = ["serde", "v4"] }
which = "6.0.3"
windows = "0.58.0"
z3 = "0.12.1"
[profile.release] [profile.release]
lto = true lto = true
codegen-units = 1 codegen-units = 1

View File

@ -64,6 +64,9 @@ COPY scripts/dummy.rs libafl_qemu/libafl_qemu_sys/src/lib.rs
COPY libafl_sugar/Cargo.toml libafl_sugar/ COPY libafl_sugar/Cargo.toml libafl_sugar/
COPY scripts/dummy.rs libafl_sugar/src/lib.rs COPY scripts/dummy.rs libafl_sugar/src/lib.rs
COPY bindings/pylibafl/Cargo.toml bindings/pylibafl/Cargo.toml
COPY bindings/pylibafl/src bindings/pylibafl/src
COPY libafl_cc/Cargo.toml libafl_cc/Cargo.toml COPY libafl_cc/Cargo.toml libafl_cc/Cargo.toml
COPY libafl_cc/build.rs libafl_cc/build.rs COPY libafl_cc/build.rs libafl_cc/build.rs
COPY libafl_cc/src libafl_cc/src COPY libafl_cc/src libafl_cc/src

View File

@ -1,11 +1,16 @@
[package] [package]
name = "pylibafl" name = "pylibafl"
description = "Python bindings for LibAFL"
version = "0.13.2" version = "0.13.2"
license = "MIT OR Apache-2.0"
repository = "https://github.com/AFLplusplus/LibAFL/"
keywords = ["fuzzing", "testing", "security", "python"]
edition = "2021" edition = "2021"
categories = ["development-tools::testing", "emulators", "embedded", "os"]
[dependencies] [dependencies]
pyo3 = { version = "0.22", features = ["extension-module"] } pyo3 = { version = "0.22.3", features = ["extension-module"] }
pyo3-log = "0.11" pyo3-log = { version = "0.11.0" }
libafl_sugar = { path = "../../libafl_sugar", version = "0.13.2", features = [ libafl_sugar = { path = "../../libafl_sugar", version = "0.13.2", features = [
"python", "python",
] } ] }
@ -19,7 +24,7 @@ libafl_qemu = { path = "../../libafl_qemu", version = "0.13.2", features = [
] } ] }
[build-dependencies] [build-dependencies]
pyo3-build-config = { version = "0.22" } pyo3-build-config = { version = "0.22.3" }
[lib] [lib]
name = "pylibafl" name = "pylibafl"

View File

@ -23,5 +23,6 @@ opt-level = 3
debug = true debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
log = { version = "0.4.22", features = ["release_max_level_info"] }

View File

@ -24,5 +24,6 @@ opt-level = 3
debug = true debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/", features = ["prelude"] } libafl = { path = "../../../libafl", features = ["prelude"] }
libafl_bolts = { path = "../../../libafl_bolts/", features = ["prelude"] } libafl_bolts = { path = "../../../libafl_bolts", features = ["prelude"] }
log = { version = "0.4.22", features = ["release_max_level_info"] }

View File

@ -20,9 +20,9 @@ opt-level = 3
debug = true debug = true
[build-dependencies] [build-dependencies]
anyhow = "1" anyhow = "1.0.89"
bindgen = "0.69.4" bindgen = "0.70.1"
cc = "1.0" cc = "1.1.21"
[dependencies] [dependencies]
libafl = { path = "../../../libafl" } libafl = { path = "../../../libafl" }
@ -33,9 +33,10 @@ libafl_targets = { path = "../../../libafl_targets", features = [
"sancov_cmplog", "sancov_cmplog",
"pointer_maps", "pointer_maps",
] } ] }
mimalloc = { version = "*", default-features = false } log = { version = "0.4.22", features = ["release_max_level_info"] }
mimalloc = { version = "0.1.43", default-features = false }
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc" }
[[bin]] [[bin]]
name = "fuzzer_sd" name = "fuzzer_sd"

View File

@ -23,5 +23,6 @@ opt-level = 3
debug = true debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/", features = ["unicode"] } libafl = { path = "../../../libafl", features = ["unicode"] }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
log = { version = "0.4.22", features = ["release_max_level_info"] }

View File

@ -15,9 +15,10 @@ opt-level = 3
debug = true debug = true
[dependencies] [dependencies]
libafl = { path = "../../../../libafl/" } libafl = { path = "../../../../libafl" }
libafl_bolts = { path = "../../../../libafl_bolts/" } libafl_bolts = { path = "../../../../libafl_bolts" }
libc = "0.2" libc = "0.2.159"
log = { version = "0.4.22", features = ["release_max_level_info"] }
[build-dependencies] [build-dependencies]
cc = "1.0" cc = "1.1.21"

View File

@ -15,9 +15,10 @@ opt-level = 3
debug = true debug = true
[dependencies] [dependencies]
libafl = { path = "../../../../libafl/" } libafl = { path = "../../../../libafl" }
libafl_bolts = { path = "../../../../libafl_bolts/" } libafl_bolts = { path = "../../../../libafl_bolts" }
libc = "0.2" libc = "0.2.159"
log = { version = "0.4.22", features = ["release_max_level_info"] }
[build-dependencies] [build-dependencies]
cc = "1.0" cc = "1.1.21"

View File

@ -14,8 +14,9 @@ opt-level = 3
debug = true debug = true
[build-dependencies] [build-dependencies]
cc = "*" cc = "1.1.21"
[dependencies] [dependencies]
libafl = { path = "../../../../libafl/" } libafl = { path = "../../../../libafl" }
libafl_bolts = { path = "../../../../libafl_bolts/" } libafl_bolts = { path = "../../../../libafl_bolts" }
log = { version = "0.4.22", features = ["release_max_level_info"] }

View File

@ -14,5 +14,6 @@ codegen-units = 1
opt-level = 3 opt-level = 3
[dependencies] [dependencies]
libafl = { path = "../../../../libafl/" } libafl = { path = "../../../../libafl" }
libafl_bolts = { path = "../../../../libafl_bolts/" } libafl_bolts = { path = "../../../../libafl_bolts" }
log = { version = "0.4.22", features = ["release_max_level_info"] }

View File

@ -18,5 +18,6 @@ opt-level = 3
debug = true debug = true
[dependencies] [dependencies]
libafl = { path = "../../../../libafl/" } libafl = { path = "../../../../libafl" }
libafl_bolts = { path = "../../../../libafl_bolts/" } libafl_bolts = { path = "../../../../libafl_bolts" }
log = { version = "0.4.22", features = ["release_max_level_info"] }

View File

@ -18,5 +18,6 @@ opt-level = 3
debug = true debug = true
[dependencies] [dependencies]
libafl = { path = "../../../../libafl/" } libafl = { path = "../../../../libafl" }
libafl_bolts = { path = "../../../../libafl_bolts/" } libafl_bolts = { path = "../../../../libafl_bolts" }
log = { version = "0.4.22", features = ["release_max_level_info"] }

View File

@ -18,25 +18,26 @@ opt-level = 3
debug = true debug = true
[build-dependencies] [build-dependencies]
cc = { version = "1.0", features = ["parallel"] } cc = { version = "1.1.21", features = ["parallel"] }
which = "6.0" which = "6.0.3"
[dependencies] [dependencies]
libafl = { path = "../../../libafl/", features = ["default", "rand_trait"] } libafl = { path = "../../../libafl", features = ["default", "rand_trait"] }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
libafl_targets = { path = "../../../libafl_targets/", features = [ libafl_targets = { path = "../../../libafl_targets", features = [
"sancov_pcguard_hitcounts", "sancov_pcguard_hitcounts",
"libfuzzer", "libfuzzer",
"sancov_cmplog", "sancov_cmplog",
] } ] }
serde = { version = "1.0", default-features = false, features = [ serde = { version = "1.0.210", default-features = false, features = [
"alloc", "alloc",
] } # serialization lib ] } # serialization lib
lain = { version = "0.5", features = [ lain = { version = "0.5.5", features = [
"serde_support", "serde_support",
], git = "https://github.com/AFLplusplus/lain.git", rev = "208e927bcf411f62f8a1f51ac2d9f9423a1ec5d3" } # We're using a lain fork compatible with libafl's rand version ], git = "https://github.com/AFLplusplus/lain.git", rev = "208e927bcf411f62f8a1f51ac2d9f9423a1ec5d3" } # We're using a lain fork compatible with libafl's rand version
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc" }
log = { version = "0.4.22", features = ["release_max_level_info"] }
[lib] [lib]
name = "tutorial" name = "tutorial"

View File

@ -18,14 +18,14 @@ opt-level = 3
debug = true debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/", features = [ libafl = { path = "../../../libafl", features = [
"std", "std",
"llmp_compression", "llmp_compression",
"llmp_bind_public", "llmp_bind_public",
"frida_cli", "frida_cli",
] } #, "llmp_small_maps", "llmp_debug"]} ] } #, "llmp_small_maps", "llmp_debug"]}
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
frida-gum = { version = "0.13.6", features = [ frida-gum = { version = "0.13.7", features = [
"auto-download", "auto-download",
"event-sink", "event-sink",
"invocation-listener", "invocation-listener",
@ -34,13 +34,14 @@ libafl_frida = { path = "../../../libafl_frida", features = ["cmplog"] }
libafl_targets = { path = "../../../libafl_targets", features = [ libafl_targets = { path = "../../../libafl_targets", features = [
"sancov_cmplog", "sancov_cmplog",
] } ] }
libc = "0.2" libc = "0.2.159"
libloading = "0.7" libloading = "0.8.5"
num-traits = "0.2" log = { version = "0.4.22", features = ["release_max_level_info"] }
rangemap = "1.3" num-traits = "0.2.19"
clap = { version = "4.5", features = ["derive"] } rangemap = "1.5.1"
serde = "1.0" clap = { version = "4.5.18", features = ["derive"] }
mimalloc = { version = "*", default-features = false } serde = "1.0.210"
mimalloc = { version = "0.1.43", default-features = false }
backtrace = "0.3" backtrace = "0.3.74"
color-backtrace = "0.5" color-backtrace = "0.6.1"

View File

@ -15,15 +15,15 @@ opt-level = 3
debug = true debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/", features = [ libafl = { path = "../../../libafl", features = [
"std", "std",
"llmp_compression", "llmp_compression",
"llmp_bind_public", "llmp_bind_public",
"frida_cli", "frida_cli",
"errors_backtrace", "errors_backtrace",
] } #, "llmp_small_maps", "llmp_debug"]} ] } #, "llmp_small_maps", "llmp_debug"]}
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
frida-gum = { version = "0.13.6", features = [ frida-gum = { version = "0.13.7", features = [
"auto-download", "auto-download",
"event-sink", "event-sink",
"invocation-listener", "invocation-listener",
@ -32,9 +32,10 @@ libafl_frida = { path = "../../../libafl_frida", features = ["cmplog"] }
libafl_targets = { path = "../../../libafl_targets", features = [ libafl_targets = { path = "../../../libafl_targets", features = [
"sancov_cmplog", "sancov_cmplog",
] } ] }
libloading = "0.7" libloading = "0.8.5"
mimalloc = { version = "*", default-features = false } log = { version = "0.4.22", features = ["release_max_level_info"] }
mimalloc = { version = "0.1.43", default-features = false }
dlmalloc = { version = "0.2.6", features = ["global"] } dlmalloc = { version = "0.2.6", features = ["global"] }
color-backtrace = "0.5" color-backtrace = "0.6.1"
env_logger = "0.10.0" env_logger = "0.11.5"
iced-x86 = { version = "1.20.0", features = ["code_asm"] } iced-x86 = { version = "1.21.0", features = ["code_asm"] }

View File

@ -18,15 +18,15 @@ opt-level = 3
debug = true debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/", features = [ libafl = { path = "../../../libafl", features = [
"std", "std",
"llmp_compression", "llmp_compression",
"llmp_bind_public", "llmp_bind_public",
"frida_cli", "frida_cli",
"errors_backtrace", "errors_backtrace",
] } #, "llmp_small_maps", "llmp_debug"]} ] } #, "llmp_small_maps", "llmp_debug"]}
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
frida-gum = { version = "0.13.6", features = [ frida-gum = { version = "0.13.7", features = [
"auto-download", "auto-download",
"event-sink", "event-sink",
"invocation-listener", "invocation-listener",
@ -35,8 +35,8 @@ libafl_frida = { path = "../../../libafl_frida", features = ["cmplog"] }
libafl_targets = { path = "../../../libafl_targets", features = [ libafl_targets = { path = "../../../libafl_targets", features = [
"sancov_cmplog", "sancov_cmplog",
] } ] }
libloading = "0.7" libloading = "0.8.5"
mimalloc = { version = "*", default-features = false } log = { version = "0.4.22", features = ["release_max_level_info"] }
color-backtrace = "0.5" mimalloc = { version = "0.1.43", default-features = false }
log = "0.4.20" color-backtrace = "0.6.1"
env_logger = "0.10.0" env_logger = "0.11.5"

View File

@ -23,12 +23,13 @@ debug = false
strip = true strip = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
libafl_qemu = { path = "../../../libafl_qemu/", features = [ libafl_qemu = { path = "../../../libafl_qemu", features = [
"x86_64", "x86_64",
"usermode", "usermode",
] } ] }
clap = { version = "4.5", features = ["default"] } log = { version = "0.4.22", features = ["release_max_level_info"] }
nix = { version = "0.29", features = ["fs"] } clap = { version = "4.5.18", features = ["default"] }
nix = { version = "0.29.0", features = ["fs"] }

View File

@ -23,12 +23,13 @@ debug = false
strip = true strip = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
libafl_qemu = { path = "../../../libafl_qemu/", features = [ libafl_qemu = { path = "../../../libafl_qemu", features = [
"x86_64", "x86_64",
"usermode", "usermode",
] } ] }
clap = { version = "4.5", features = ["default"] } log = { version = "0.4.22", features = ["release_max_level_info"] }
nix = { version = "0.29", features = ["fs"] } clap = { version = "4.5.18", features = ["default"] }
nix = { version = "0.29.0", features = ["fs"] }

View File

@ -26,19 +26,13 @@ mips = ["libafl_qemu/mips"]
ppc = ["libafl_qemu/ppc", "be"] ppc = ["libafl_qemu/ppc", "be"]
[build-dependencies] [build-dependencies]
vergen = { version = "8.2.1", features = [ vergen = { version = "9.0.1", features = ["build", "cargo", "rustc", "si"] }
"build", vergen-git2 = "1.0.1"
"cargo",
"git",
"gitcl",
"rustc",
"si",
] }
[dependencies] [dependencies]
clap = { version = "4.5", features = ["derive", "string"] } clap = { version = "4.5.18", features = ["derive", "string"] }
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
libafl_qemu = { path = "../../../libafl_qemu/", features = ["usermode"] } libafl_qemu = { path = "../../../libafl_qemu", features = ["usermode"] }
log = { version = "0.4.20" } log = { version = "0.4.22", features = ["release_max_level_info"] }
rangemap = { version = "1.3" } rangemap = { version = "1.5.1" }

View File

@ -1,4 +1,5 @@
use vergen::EmitBuilder; use vergen::{BuildBuilder, CargoBuilder, Emitter, RustcBuilder, SysinfoBuilder};
use vergen_git2::Git2Builder;
#[macro_export] #[macro_export]
macro_rules! assert_unique_feature { macro_rules! assert_unique_feature {
@ -13,12 +14,23 @@ macro_rules! assert_unique_feature {
} }
fn main() { fn main() {
EmitBuilder::builder() let build = BuildBuilder::all_build().unwrap();
.all_build() let cargo = CargoBuilder::all_cargo().unwrap();
.all_cargo() let git = Git2Builder::all_git().unwrap();
.all_git() let rustc = RustcBuilder::all_rustc().unwrap();
.all_rustc() let sysinfo = SysinfoBuilder::all_sysinfo().unwrap();
.all_sysinfo()
Emitter::default()
.add_instructions(&build)
.unwrap()
.add_instructions(&cargo)
.unwrap()
.add_instructions(&git)
.unwrap()
.add_instructions(&rustc)
.unwrap()
.add_instructions(&sysinfo)
.unwrap()
.emit() .emit()
.unwrap(); .unwrap();

View File

@ -26,19 +26,13 @@ mips = ["libafl_qemu/mips"]
ppc = ["libafl_qemu/ppc", "be"] ppc = ["libafl_qemu/ppc", "be"]
[build-dependencies] [build-dependencies]
vergen = { version = "8.2.1", features = [ vergen = { version = "9.0.1", features = ["build", "cargo", "rustc", "si"] }
"build", vergen-git2 = "1.0.1"
"cargo",
"git",
"gitcl",
"rustc",
"si",
] }
[dependencies] [dependencies]
clap = { version = "4.5", features = ["derive", "string"] } clap = { version = "4.5.18", features = ["derive", "string"] }
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
libafl_qemu = { path = "../../../libafl_qemu/", features = ["usermode"] } libafl_qemu = { path = "../../../libafl_qemu", features = ["usermode"] }
log = { version = "0.4.20" } log = { version = "0.4.22", features = ["release_max_level_info"] }
rangemap = { version = "1.3" } rangemap = { version = "1.5.1" }

View File

@ -1,4 +1,5 @@
use vergen::EmitBuilder; use vergen::{BuildBuilder, CargoBuilder, Emitter, RustcBuilder, SysinfoBuilder};
use vergen_git2::Git2Builder;
#[macro_export] #[macro_export]
macro_rules! assert_unique_feature { macro_rules! assert_unique_feature {
@ -13,12 +14,23 @@ macro_rules! assert_unique_feature {
} }
fn main() { fn main() {
EmitBuilder::builder() let build = BuildBuilder::all_build().unwrap();
.all_build() let cargo = CargoBuilder::all_cargo().unwrap();
.all_cargo() let git = Git2Builder::all_git().unwrap();
.all_git() let rustc = RustcBuilder::all_rustc().unwrap();
.all_rustc() let sysinfo = SysinfoBuilder::all_sysinfo().unwrap();
.all_sysinfo()
Emitter::default()
.add_instructions(&build)
.unwrap()
.add_instructions(&cargo)
.unwrap()
.add_instructions(&git)
.unwrap()
.add_instructions(&rustc)
.unwrap()
.add_instructions(&sysinfo)
.unwrap()
.emit() .emit()
.unwrap(); .unwrap();

View File

@ -37,24 +37,18 @@ opt-level = 3
debug = true debug = true
[build-dependencies] [build-dependencies]
vergen = { version = "8.2", features = [ vergen = { version = "9.0.1", features = ["build", "cargo", "rustc", "si"] }
"build", vergen-git2 = "1.0.1"
"cargo",
"git",
"gitcl",
"rustc",
"si",
] }
[dependencies] [dependencies]
clap = { version = "4.3", features = ["derive", "string"] } clap = { version = "4.5.18", features = ["derive", "string"] }
libafl = { path = "../../../libafl" } libafl = { path = "../../../libafl" }
libafl_bolts = { path = "../../../libafl_bolts", features = [ libafl_bolts = { path = "../../../libafl_bolts", features = [
"errors_backtrace", "errors_backtrace",
] } ] }
libafl_qemu = { path = "../../../libafl_qemu", features = ["usermode"] } libafl_qemu = { path = "../../../libafl_qemu", features = ["usermode"] }
log = { version = "0.4.20" } log = { version = "0.4.22", features = ["release_max_level_info"] }
nix = { version = "0.29", features = ["fs"] } nix = { version = "0.29.0", features = ["fs"] }
rangemap = { version = "1.3" } rangemap = { version = "1.5.1" }
readonly = { version = "0.2.10" } readonly = { version = "0.2.12" }
typed-builder = { version = "0.19" } typed-builder = { version = "0.20.0" }

View File

@ -1,4 +1,5 @@
use vergen::EmitBuilder; use vergen::{BuildBuilder, CargoBuilder, Emitter, RustcBuilder, SysinfoBuilder};
use vergen_git2::Git2Builder;
#[macro_export] #[macro_export]
macro_rules! assert_unique_feature { macro_rules! assert_unique_feature {
@ -13,12 +14,23 @@ macro_rules! assert_unique_feature {
} }
fn main() { fn main() {
EmitBuilder::builder() let build = BuildBuilder::all_build().unwrap();
.all_build() let cargo = CargoBuilder::all_cargo().unwrap();
.all_cargo() let git = Git2Builder::all_git().unwrap();
.all_git() let rustc = RustcBuilder::all_rustc().unwrap();
.all_rustc() let sysinfo = SysinfoBuilder::all_sysinfo().unwrap();
.all_sysinfo()
Emitter::default()
.add_instructions(&build)
.unwrap()
.add_instructions(&cargo)
.unwrap()
.add_instructions(&git)
.unwrap()
.add_instructions(&rustc)
.unwrap()
.add_instructions(&sysinfo)
.unwrap()
.emit() .emit()
.unwrap(); .unwrap();

View File

@ -5,8 +5,9 @@ edition = "2021"
[dependencies] [dependencies]
libafl = { path = "../../../libafl", features = ["introspection"] } libafl = { path = "../../../libafl", features = ["introspection"] }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
libafl_tinyinst = { path = "../../../libafl_tinyinst" } libafl_tinyinst = { path = "../../../libafl_tinyinst" }
log = { version = "0.4.22", features = ["release_max_level_info"] }
[profile.release] [profile.release]
codegen-units = 1 codegen-units = 1

View File

@ -22,5 +22,6 @@ opt-level = 3
debug = true debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
log = { version = "0.4.22", features = ["release_max_level_info"] }

View File

@ -17,21 +17,22 @@ opt-level = 3
debug = true debug = true
[build-dependencies] [build-dependencies]
cc = { version = "1.0", features = ["parallel"] } cc = { version = "1.1.21", features = ["parallel"] }
which = { version = "6.0" } which = { version = "6.0.3" }
[dependencies] [dependencies]
clap = { version = "4.5", features = ["derive"] } clap = { version = "4.5.18", features = ["derive"] }
nix = { version = "0.29", features = ["signal"] } nix = { version = "0.29.0", features = ["signal"] }
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc" }
libafl_targets = { path = "../../../libafl_targets/", features = [ libafl_targets = { path = "../../../libafl_targets", features = [
"sancov_pcguard_hitcounts", "sancov_pcguard_hitcounts",
"libfuzzer", "libfuzzer",
"pointer_maps", "pointer_maps",
] } ] }
env_logger = "0.11" log = { version = "0.4.22", features = ["release_max_level_info"] }
env_logger = "0.11.5"
[lib] [lib]
name = "libforkserver_libafl_cc" name = "libforkserver_libafl_cc"

View File

@ -16,8 +16,9 @@ codegen-units = 1
opt-level = 3 opt-level = 3
[dependencies] [dependencies]
env_logger = "0.11" clap = { version = "4.5.18", features = ["derive"] }
libafl = { path = "../../../libafl/", features = ["std", "derive"] } env_logger = "0.11.5"
libafl_bolts = { path = "../../../libafl_bolts/" } libafl = { path = "../../../libafl", features = ["std", "derive"] }
clap = { version = "4.0", features = ["derive"] } libafl_bolts = { path = "../../../libafl_bolts" }
nix = { version = "0.29", features = ["signal"] } log = { version = "0.4.22", features = ["release_max_level_info"] }
nix = { version = "0.29.0", features = ["signal"] }

View File

@ -19,12 +19,14 @@ debug = false
strip = true strip = true
[build-dependencies] [build-dependencies]
cc = { version = "1.0", features = ["parallel"] } cc = { version = "1.1.22", features = ["parallel"] }
which = "6.0" which = "6.0.3"
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
libafl_targets = { path = "../../../libafl_targets/" } libafl_targets = { path = "../../../libafl_targets" }
clap = { version = "4.5", features = ["default"] }
nix = { version = "0.29", features = ["signal"] } log = { version = "0.4.22", features = ["release_max_level_info"] }
clap = { version = "4.5.18", features = ["default"] }
nix = { version = "0.29.0", features = ["signal"] }

View File

@ -19,12 +19,13 @@ debug = false
strip = true strip = true
[build-dependencies] [build-dependencies]
cc = { version = "1.0", features = ["parallel"] } cc = { version = "1.1.21", features = ["parallel"] }
which = "6.0" which = "6.0.3"
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
libafl_targets = { path = "../../../libafl_targets/" } libafl_targets = { path = "../../../libafl_targets" }
clap = { version = "4.5", features = ["default"] } log = { version = "0.4.22", features = ["release_max_level_info"] }
nix = { version = "0.29", features = ["signal"] } clap = { version = "4.5.18", features = ["default"] }
nix = { version = "0.29.0", features = ["signal"] }

View File

@ -12,7 +12,7 @@ categories = ["development-tools::testing"]
edition = "2021" edition = "2021"
[dependencies] [dependencies]
clap = { version = "4.5", features = ["derive", "env"] } clap = { version = "4.5.18", features = ["derive", "env"] }
env_logger = "0.11.3" env_logger = "0.11.3"
libafl = { path = "../../../libafl", features = [ libafl = { path = "../../../libafl", features = [
"std", "std",
@ -26,8 +26,9 @@ libafl_bolts = { path = "../../../libafl_bolts", features = [
"errors_backtrace", "errors_backtrace",
] } ] }
libafl_targets = { path = "../../../libafl_targets" } libafl_targets = { path = "../../../libafl_targets" }
log = { version = "0.4.22", features = ["release_max_level_info"] }
memmap2 = "0.9.4" memmap2 = "0.9.4"
nix = { version = "0.29", features = ["fs"] } nix = { version = "0.29.0", features = ["fs"] }
regex = "1.10.5" regex = "1.10.5"
serde = { version = "1.0.117", features = ["derive"] } serde = { version = "1.0.117", features = ["derive"] }

View File

@ -6,10 +6,12 @@ default-run = "nyx_libxml2_parallel"
[dependencies] [dependencies]
libafl = { path = "../../../libafl" } libafl = { path = "../../../libafl" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
libafl_cc = { path = "../../../libafl_cc" } libafl_cc = { path = "../../../libafl_cc" }
libafl_nyx = { path = "../../../libafl_nyx" } libafl_nyx = { path = "../../../libafl_nyx" }
log = { version = "0.4.22", features = ["release_max_level_info"] }
[profile.release] [profile.release]
codegen-units = 1 codegen-units = 1
opt-level = 3 opt-level = 3

View File

@ -6,10 +6,12 @@ default-run = "nyx_libxml2_standalone"
[dependencies] [dependencies]
libafl = { path = "../../../libafl" } libafl = { path = "../../../libafl" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
libafl_cc = { path = "../../../libafl_cc" } libafl_cc = { path = "../../../libafl_cc" }
libafl_nyx = { path = "../../../libafl_nyx" } libafl_nyx = { path = "../../../libafl_nyx" }
log = { version = "0.4.22", features = ["release_max_level_info"] }
[profile.release] [profile.release]
codegen-units = 1 codegen-units = 1
opt-level = 3 opt-level = 3

View File

@ -36,7 +36,9 @@ libafl_qemu_sys = { path = "../../../libafl_qemu/libafl_qemu_sys", features = [
"arm", "arm",
"systemmode", "systemmode",
] } ] }
env_logger = "*"
env_logger = "0.11.5"
log = { version = "0.4.22", features = ["release_max_level_info"] }
[build-dependencies] [build-dependencies]
libafl_qemu_build = { path = "../../../libafl_qemu/libafl_qemu_build" } libafl_qemu_build = { path = "../../../libafl_qemu/libafl_qemu_build" }

View File

@ -29,7 +29,7 @@ libafl_qemu_sys = { path = "../../../../../libafl_qemu/libafl_qemu_sys", feature
"systemmode", "systemmode",
#"paranoid_debug" #"paranoid_debug"
] } ] }
env_logger = "*" env_logger = "0.11.5"
[build-dependencies] [build-dependencies]
libafl_qemu_build = { path = "../../../../../libafl_qemu/libafl_qemu_build" } libafl_qemu_build = { path = "../../../../../libafl_qemu/libafl_qemu_build" }

View File

@ -26,7 +26,7 @@ libafl_qemu_sys = { path = "../../../../../libafl_qemu/libafl_qemu_sys", feature
"systemmode", "systemmode",
# "paranoid_debug" # "paranoid_debug"
] } ] }
env_logger = "*" env_logger = "0.11.5"
[build-dependencies] [build-dependencies]
libafl_qemu_build = { path = "../../../../../libafl_qemu/libafl_qemu_build" } libafl_qemu_build = { path = "../../../../../libafl_qemu/libafl_qemu_build" }

View File

@ -11,8 +11,9 @@ crate-type = ["cdylib", "rlib"]
default = ["console_error_panic_hook"] default = ["console_error_panic_hook"]
[dependencies] [dependencies]
js-sys = "0.3" js-sys = "0.3.70"
wasm-bindgen = "0.2.63" log = { version = "0.4.22", features = ["release_max_level_info"] }
wasm-bindgen = "0.2.93"
libafl = { path = "../../../libafl", default-features = false } libafl = { path = "../../../libafl", default-features = false }
libafl_bolts = { path = "../../../libafl_bolts", default-features = false } libafl_bolts = { path = "../../../libafl_bolts", default-features = false }
@ -21,9 +22,9 @@ libafl_bolts = { path = "../../../libafl_bolts", default-features = false }
# logging them with `console.error`. This is great for development, but requires # logging them with `console.error`. This is great for development, but requires
# all the `std::fmt` and `std::panicking` infrastructure, so isn't great for # all the `std::fmt` and `std::panicking` infrastructure, so isn't great for
# code size when deploying. # code size when deploying.
console_error_panic_hook = { version = "0.1.6", optional = true } console_error_panic_hook = { version = "0.1.7", optional = true }
web-sys = { version = "0.3", features = [ web-sys = { version = "0.3.70", features = [
'console', 'console',
'Window', 'Window',
'Performance', 'Performance',
@ -31,7 +32,7 @@ web-sys = { version = "0.3", features = [
] } ] }
[dev-dependencies] [dev-dependencies]
wasm-bindgen-test = "0.3.13" wasm-bindgen-test = "0.3.43"
[profile.release] [profile.release]
opt-level = 3 opt-level = 3

View File

@ -0,0 +1 @@
*

View File

@ -18,9 +18,10 @@ opt-level = 3
debug = true debug = true
[dependencies] [dependencies]
libafl = { default-features = false, path = "../../../libafl/" } libafl = { default-features = false, path = "../../../libafl" }
libafl_bolts = { default-features = false, path = "../../../libafl_bolts/" } libafl_bolts = { default-features = false, path = "../../../libafl_bolts" }
log = { version = "0.4.22", features = ["release_max_level_info"] }
static-alloc = "0.2.3" static-alloc = "0.2.3"
[target.'cfg(unix)'.dependencies] [target.'cfg(unix)'.dependencies]
libc = "0.2" libc = "0.2.159"

View File

@ -20,3 +20,4 @@ categories = [
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies] [dependencies]
log = { version = "0.4.22", features = ["release_max_level_info"] }

View File

@ -18,19 +18,20 @@ opt-level = 3
debug = true debug = true
[build-dependencies] [build-dependencies]
cc = { version = "1.0", features = ["parallel"] } cc = { version = "1.1.21", features = ["parallel"] }
which = "6.0" which = "6.0.3"
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
libafl_targets = { path = "../../../libafl_targets/", features = [ libafl_targets = { path = "../../../libafl_targets", features = [
"pointer_maps", "pointer_maps",
"sancov_cmplog", "sancov_cmplog",
"libfuzzer", "libfuzzer",
"sancov_8bit", "sancov_8bit",
] } ] }
clap = { version = "4.5", features = ["default"] } log = { version = "0.4.22", features = ["release_max_level_info"] }
clap = { version = "4.5.18", features = ["default"] }
[lib] [lib]
name = "afl_atheris" name = "afl_atheris"

View File

@ -22,6 +22,7 @@ opt-level = 3
debug = true debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
log = { version = "0.4.22", features = ["release_max_level_info"] }
klo-routines = { version = "0.1.0", git = "https://github.com/andreafioraldi/klo-routines.git", rev = "b8e2fb6" } klo-routines = { version = "0.1.0", git = "https://github.com/andreafioraldi/klo-routines.git", rev = "b8e2fb6" }

View File

@ -22,5 +22,6 @@ opt-level = 3
debug = true debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
log = { version = "0.4.22", features = ["release_max_level_info"] }

View File

@ -24,25 +24,27 @@ debug = false
strip = true strip = true
[build-dependencies] [build-dependencies]
cc = { version = "1.0", features = ["parallel"] } cc = { version = "1.1.21", features = ["parallel"] }
which = "6.0" which = "6.0.3"
[dependencies] [dependencies]
env_logger = "0.11" env_logger = "0.11.5"
once_cell = "1.19" once_cell = "1.19.0"
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
libafl_targets = { path = "../../../libafl_targets/", features = [ libafl_targets = { path = "../../../libafl_targets", features = [
"sancov_pcguard_hitcounts", "sancov_pcguard_hitcounts",
"sancov_cmplog", "sancov_cmplog",
"libfuzzer", "libfuzzer",
"function-logging", "function-logging",
] } ] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc" }
clap = { version = "4.5", features = ["default"] }
nix = { version = "0.29", features = ["fs"] } clap = { version = "4.5.18", features = ["default"] }
mimalloc = { version = "*", default-features = false } log = { version = "0.4.22", features = ["release_max_level_info"] }
nix = { version = "0.29.0", features = ["fs"] }
mimalloc = { version = "0.1.43", default-features = false }
[lib] [lib]
name = "fuzzbench" name = "fuzzbench"

View File

@ -24,22 +24,23 @@ debug = false
strip = true strip = true
[build-dependencies] [build-dependencies]
cc = { version = "1.0", features = ["parallel"] } cc = { version = "1.0.106", features = ["parallel"] }
which = "6.0" which = "6.0.3"
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
libafl_targets = { path = "../../../libafl_targets/", features = [ libafl_targets = { path = "../../../libafl_targets", features = [
"sancov_pcguard_hitcounts", "sancov_pcguard_hitcounts",
"sancov_cmplog", "sancov_cmplog",
"libfuzzer", "libfuzzer",
] } ] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc" }
clap = { version = "4.5", features = ["default"] } log = { version = "0.4.22", features = ["release_max_level_info"] }
nix = { version = "0.29", features = ["fs"] } clap = { version = "4.5.18", features = ["default"] }
mimalloc = { version = "*", default-features = false } nix = { version = "0.29.0", features = ["fs"] }
mimalloc = { version = "0.1.43", default-features = false }
[lib] [lib]
name = "fuzzbench" name = "fuzzbench"

View File

@ -24,23 +24,24 @@ debug = false
strip = true strip = true
[build-dependencies] [build-dependencies]
cc = { version = "1.0", features = ["parallel"] } cc = { version = "1.1.21", features = ["parallel"] }
which = "6.0" which = "6.0.3"
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
libafl_targets = { path = "../../../libafl_targets/", features = [ libafl_targets = { path = "../../../libafl_targets", features = [
"sancov_pcguard_hitcounts", "sancov_pcguard_hitcounts",
"sancov_cmplog", "sancov_cmplog",
"libfuzzer", "libfuzzer",
"sancov_ctx", "sancov_ctx",
] } ] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc" }
clap = { version = "4.5", features = ["default"] } log = { version = "0.4.22", features = ["release_max_level_info"] }
nix = { version = "0.29", features = ["fs"] } clap = { version = "4.5.18", features = ["default"] }
mimalloc = { version = "*", default-features = false } nix = { version = "0.29.0", features = ["fs"] }
mimalloc = { version = "0.1.43", default-features = false }
[lib] [lib]
name = "fuzzbench" name = "fuzzbench"

View File

@ -19,24 +19,24 @@ opt-level = 3
debug = true debug = true
[build-dependencies] [build-dependencies]
cc = { version = "1.0", features = ["parallel"] } cc = { version = "1.1.21", features = ["parallel"] }
which = "6.0" which = "6.0.3"
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
libafl_targets = { path = "../../../libafl_targets/", features = [ libafl_targets = { path = "../../../libafl_targets", features = [
"sancov_pcguard_hitcounts", "sancov_pcguard_hitcounts",
"sancov_cmplog", "sancov_cmplog",
"libfuzzer", "libfuzzer",
] } ] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc" }
clap = { version = "4.5", features = ["default"] } log = { version = "0.4.22", features = ["release_max_level_info"] }
nix = { version = "0.29", features = ["fs"] } clap = { version = "4.5.18", features = ["default"] }
mimalloc = { version = "*", default-features = false } nix = { version = "0.29.0", features = ["fs"] }
mimalloc = { version = "0.1.43", default-features = false }
content_inspector = "0.2.4" content_inspector = "0.2.4"
#log = "0.4"
[lib] [lib]
name = "fuzzbench" name = "fuzzbench"

View File

@ -18,19 +18,20 @@ opt-level = 3
debug = true debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
libafl_targets = { path = "../../../libafl_targets/", features = [ libafl_targets = { path = "../../../libafl_targets", features = [
"sancov_pcguard_edges", "sancov_pcguard_edges",
"sancov_value_profile", "sancov_value_profile",
"libfuzzer", "libfuzzer",
] } ] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc" }
mimalloc = { version = "*", default-features = false } log = { version = "0.4.22", features = ["release_max_level_info"] }
mimalloc = { version = "0.1.43", default-features = false }
[build-dependencies] [build-dependencies]
cc = { version = "1.0", features = ["parallel"] } cc = { version = "1.1.21", features = ["parallel"] }
[lib] [lib]
name = "libfuzzer_libmozjpeg" name = "libfuzzer_libmozjpeg"

View File

@ -20,21 +20,22 @@ opt-level = 3
debug = true debug = true
[build-dependencies] [build-dependencies]
cc = { version = "1.0", features = ["parallel"] } cc = { version = "1.1.21", features = ["parallel"] }
which = "6.0" which = "6.0.3"
[dependencies] [dependencies]
libafl = { path = "../../../libafl/", features = ["default"] } libafl = { path = "../../../libafl", features = ["default"] }
# libafl = { path = "../../../libafl/", features = ["default"] } libafl_bolts = { path = "../../../libafl_bolts" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_targets = { path = "../../../libafl_targets", features = [
libafl_targets = { path = "../../../libafl_targets/", features = [
"sancov_pcguard_hitcounts", "sancov_pcguard_hitcounts",
"libfuzzer", "libfuzzer",
"sancov_cmplog", "sancov_cmplog",
] } ] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc" }
mimalloc = { version = "*", default-features = false }
log = { version = "0.4.22", features = ["release_max_level_info"] }
mimalloc = { version = "0.1.43", default-features = false }
[lib] [lib]
name = "libfuzzer_libpng" name = "libfuzzer_libpng"

View File

@ -18,29 +18,31 @@ opt-level = 3
debug = true debug = true
[build-dependencies] [build-dependencies]
cc = { version = "1.0", features = ["parallel"] } cc = { version = "1.1.21", features = ["parallel"] }
which = "6.0" which = "6.0.3"
[dependencies] [dependencies]
libafl = { path = "../../../libafl/", features = [ libafl = { path = "../../../libafl", features = [
"std", "std",
"derive", "derive",
"llmp_compression", "llmp_compression",
"introspection", "introspection",
] } ] }
libafl_bolts = { path = "../../../libafl_bolts/", features = [ libafl_bolts = { path = "../../../libafl_bolts", features = [
"std", "std",
"derive", "derive",
"llmp_compression", "llmp_compression",
] } ] }
libafl_targets = { path = "../../../libafl_targets/", features = [ libafl_targets = { path = "../../../libafl_targets", features = [
"sancov_pcguard_hitcounts", "sancov_pcguard_hitcounts",
"libfuzzer", "libfuzzer",
] } ] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc/" }
clap = { version = "4.5", features = ["derive"] }
mimalloc = { version = "*", default-features = false } clap = { version = "4.5.18", features = ["derive"] }
log = { version = "0.4.22", features = ["release_max_level_info"] }
mimalloc = { version = "0.1.43", default-features = false }
[lib] [lib]
name = "libfuzzer_libpng" name = "libfuzzer_libpng"

View File

@ -18,11 +18,11 @@ opt-level = 3
debug = true debug = true
[build-dependencies] [build-dependencies]
cc = { version = "1.0", features = ["parallel"] } cc = { version = "1.1.21", features = ["parallel"] }
which = "6.0" which = "6.0.3"
[dependencies] [dependencies]
libafl = { path = "../../../libafl/", features = [ libafl = { path = "../../../libafl", features = [
"std", "std",
"derive", "derive",
"rand_trait", "rand_trait",
@ -32,18 +32,20 @@ libafl = { path = "../../../libafl/", features = [
"regex", "regex",
"scalability_introspection", "scalability_introspection",
] } ] }
libafl_bolts = { path = "../../../libafl_bolts/", features = [ libafl_bolts = { path = "../../../libafl_bolts", features = [
"errors_backtrace", "errors_backtrace",
] } ] }
libafl_targets = { path = "../../../libafl_targets/", features = [ libafl_targets = { path = "../../../libafl_targets", features = [
"sancov_pcguard_hitcounts", "sancov_pcguard_hitcounts",
"libfuzzer", "libfuzzer",
] } ] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc" }
clap = { version = "4.5", features = ["derive"] }
mimalloc = { version = "*", default-features = false } clap = { version = "4.5.18", features = ["derive"] }
env_logger = "0.10" log = { version = "0.4.22", features = ["release_max_level_info"] }
mimalloc = { version = "0.1.43", default-features = false }
env_logger = "0.11.5"
[lib] [lib]
name = "libfuzzer_libpng" name = "libfuzzer_libpng"

View File

@ -21,22 +21,23 @@ opt-level = 3
debug = true debug = true
[build-dependencies] [build-dependencies]
cc = { version = "1.0", features = ["parallel"] } cc = { version = "1.1.21", features = ["parallel"] }
which = "6.0" which = "6.0.3"
[dependencies] [dependencies]
env_logger = "0.10" libafl = { path = "../../../libafl", features = ["default", "cmin"] }
libafl = { path = "../../../libafl/", features = ["default", "cmin"] } libafl_bolts = { path = "../../../libafl_bolts" }
# libafl = { path = "../../../libafl/", features = ["default"] } libafl_targets = { path = "../../../libafl_targets", features = [
libafl_bolts = { path = "../../../libafl_bolts/" }
libafl_targets = { path = "../../../libafl_targets/", features = [
"sancov_pcguard_hitcounts", "sancov_pcguard_hitcounts",
"libfuzzer", "libfuzzer",
"sancov_cmplog", "sancov_cmplog",
] } ] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc" }
mimalloc = { version = "*", default-features = false }
env_logger = "0.11.5"
log = { version = "0.4.22", features = ["release_max_level_info"] }
mimalloc = { version = "0.1.43", default-features = false }
[lib] [lib]
name = "libfuzzer_libpng" name = "libfuzzer_libpng"

View File

@ -18,25 +18,27 @@ opt-level = 3
debug = true debug = true
[build-dependencies] [build-dependencies]
cc = { version = "1.0", features = ["parallel"] } cc = { version = "1.1.21", features = ["parallel"] }
which = "6.0" which = "6.0.3"
[dependencies] [dependencies]
libafl = { path = "../../../libafl/", features = [ libafl = { path = "../../../libafl", features = [
"std", "std",
"derive", "derive",
"llmp_compression", "llmp_compression",
"introspection", "introspection",
] } ] }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
libafl_targets = { path = "../../../libafl_targets/", features = [ libafl_targets = { path = "../../../libafl_targets", features = [
"sancov_pcguard_hitcounts", "sancov_pcguard_hitcounts",
"libfuzzer", "libfuzzer",
] } ] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc" }
clap = { version = "4.5", features = ["derive"] }
mimalloc = { version = "*", default-features = false } clap = { version = "4.5.18", features = ["derive"] }
log = { version = "0.4.22", features = ["release_max_level_info"] }
mimalloc = { version = "0.1.43", default-features = false }
[lib] [lib]
name = "libfuzzer_libpng" name = "libfuzzer_libpng"

View File

@ -18,23 +18,25 @@ opt-level = 3
debug = true debug = true
[build-dependencies] [build-dependencies]
cc = { version = "1.0", features = ["parallel"] } cc = { version = "1.1.21", features = ["parallel"] }
which = "6.0" which = "6.0.3"
[dependencies] [dependencies]
env_logger = "0.10" env_logger = "0.11.5"
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl" }
libafl_bolts = { path = "../../../libafl_bolts/", features = [ libafl_bolts = { path = "../../../libafl_bolts", features = [
"errors_backtrace", "errors_backtrace",
] } ] }
libafl_targets = { path = "../../../libafl_targets/", features = [ libafl_targets = { path = "../../../libafl_targets", features = [
"sancov_pcguard_hitcounts", "sancov_pcguard_hitcounts",
"libfuzzer", "libfuzzer",
] } ] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc" }
clap = { version = "4.5", features = ["derive"] }
mimalloc = { version = "*", default-features = false } clap = { version = "4.5.18", features = ["derive"] }
log = { version = "0.4.22", features = ["release_max_level_info"] }
mimalloc = { version = "0.1.43", default-features = false }
[lib] [lib]
name = "libfuzzer_libpng" name = "libfuzzer_libpng"

View File

@ -20,21 +20,23 @@ opt-level = 3
debug = true debug = true
[build-dependencies] [build-dependencies]
cc = { version = "1.0", features = ["parallel"] } cc = { version = "1.1.21", features = ["parallel"] }
which = "6.0" which = "6.0.3"
[dependencies] [dependencies]
libafl = { path = "../../../libafl/", features = ["default", "tcp_manager"] } libafl = { path = "../../../libafl", features = ["default", "tcp_manager"] }
# libafl = { path = "../../../libafl/", features = ["default"] } # libafl = { path = "../../../libafl/", features = ["default"] }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
libafl_targets = { path = "../../../libafl_targets/", features = [ libafl_targets = { path = "../../../libafl_targets", features = [
"sancov_pcguard_hitcounts", "sancov_pcguard_hitcounts",
"libfuzzer", "libfuzzer",
"sancov_cmplog", "sancov_cmplog",
] } ] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc" }
mimalloc = { version = "*", default-features = false }
log = { version = "0.4.22", features = ["release_max_level_info"] }
mimalloc = { version = "0.1.43", default-features = false }
[lib] [lib]
name = "libfuzzer_libpng" name = "libfuzzer_libpng"

View File

@ -19,15 +19,16 @@ opt-level = 3
debug = true debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
libafl_targets = { path = "../../../libafl_targets/", features = [ libafl_targets = { path = "../../../libafl_targets", features = [
"sancov_pcguard_edges", "sancov_pcguard_edges",
"sancov_cmplog", "sancov_cmplog",
"libfuzzer", "libfuzzer",
"libfuzzer_no_link_main", "libfuzzer_no_link_main",
] } ] }
mimalloc = { version = "*", default-features = false } log = { version = "0.4.22", features = ["release_max_level_info"] }
mimalloc = { version = "0.1.43", default-features = false }
[build-dependencies] [build-dependencies]
cc = { version = "1.0", features = ["parallel"] } cc = { version = "1.1.21", features = ["parallel"] }

View File

@ -26,15 +26,16 @@ opt-level = 3
debug = true debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
libafl_targets = { path = "../../../libafl_targets/", features = [ libafl_targets = { path = "../../../libafl_targets", features = [
"sancov_pcguard_edges", "sancov_pcguard_edges",
"sancov_cmplog", "sancov_cmplog",
"libfuzzer", "libfuzzer",
] } ] }
libafl_sugar = { path = "../../../libafl_sugar/" } libafl_sugar = { path = "../../../libafl_sugar" }
mimalloc = { version = "*", default-features = false } log = { version = "0.4.22", features = ["release_max_level_info"] }
mimalloc = { version = "0.1.43", default-features = false }
[build-dependencies] [build-dependencies]
cc = { version = "1.0", features = ["parallel"] } cc = { version = "1.1.21", features = ["parallel"] }

View File

@ -14,16 +14,17 @@ opt-level = 3
debug = true debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
libafl_targets = { path = "../../../libafl_targets/", features = [ libafl_targets = { path = "../../../libafl_targets", features = [
"libfuzzer", "libfuzzer",
"sancov_pcguard_edges", "sancov_pcguard_edges",
] } ] }
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc" }
log = { version = "0.4.22", features = ["release_max_level_info"] }
[build-dependencies] [build-dependencies]
cc = { version = "1.0" } cc = { version = "1.1.21" }
[lib] [lib]
name = "libfuzzer_windows_asan" name = "libfuzzer_windows_asan"

View File

@ -19,8 +19,8 @@ opt-level = 3
debug = true debug = true
[build-dependencies] [build-dependencies]
cc = { version = "1.0", features = ["parallel"] } cc = { version = "1.1.21", features = ["parallel"] }
which = "6.0" which = "6.0.3"
[dependencies] [dependencies]
# no llmp compression for now, better perfs. # no llmp compression for now, better perfs.
@ -54,9 +54,11 @@ libafl_targets = { path = "../../../libafl_targets", features = [
] } ] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../../libafl_cc" } libafl_cc = { path = "../../../libafl_cc" }
clap = { version = "4.5", features = ["derive"] }
mimalloc = { version = "*", default-features = false } clap = { version = "4.5.18", features = ["derive"] }
env_logger = "0.11" log = { version = "0.4.22", features = ["release_max_level_info"] }
mimalloc = { version = "0.1.43", default-features = false }
env_logger = "0.11.5"
[lib] [lib]
name = "libfuzzer_libpng" name = "libfuzzer_libpng"

View File

@ -19,6 +19,7 @@ opt-level = 3
debug = true debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
serde = "*" log = { version = "0.4.22", features = ["release_max_level_info"] }
serde = "1.0.210"

View File

@ -22,8 +22,9 @@ opt-level = 3
debug = true debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
postcard = { version = "1.0", features = [ log = { version = "0.4.22", features = ["release_max_level_info"] }
postcard = { version = "1.0.10", features = [
"alloc", "alloc",
], default-features = false } # no_std compatible serde serialization format ], default-features = false } # no_std compatible serde serialization format

View File

@ -22,5 +22,6 @@ opt-level = 3
debug = true debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
log = { version = "0.4.22", features = ["release_max_level_info"] }

View File

@ -24,5 +24,6 @@ opt-level = 3
debug = true debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/", features = ["multipart_inputs"] } libafl = { path = "../../../libafl", features = ["multipart_inputs"] }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
log = { version = "0.4.22", features = ["release_max_level_info"] }

View File

@ -22,5 +22,6 @@ opt-level = 3
debug = true debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/", features = ["default", "nautilus"] } libafl = { path = "../../../libafl", features = ["default", "nautilus"] }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
log = { version = "0.4.22", features = ["release_max_level_info"] }

View File

@ -22,5 +22,6 @@ opt-level = 3
debug = true debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/" } libafl = { path = "../../../libafl" }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
log = { version = "0.4.22", features = ["release_max_level_info"] }

View File

@ -20,18 +20,19 @@ opt-level = 3
debug = true debug = true
[dependencies] [dependencies]
libafl = { path = "../../../../libafl/", features = ["concolic_mutation"] } libafl = { path = "../../../../libafl", features = ["concolic_mutation"] }
libafl_bolts = { path = "../../../../libafl_bolts/" } libafl_bolts = { path = "../../../../libafl_bolts" }
libafl_targets = { path = "../../../../libafl_targets/", features = [ libafl_targets = { path = "../../../../libafl_targets", features = [
"sancov_pcguard_edges", "sancov_pcguard_edges",
"sancov_cmplog", "sancov_cmplog",
"libfuzzer", "libfuzzer",
] } ] }
clap = { version = "4.0", features = ["derive"] } clap = { version = "4.5.18", features = ["derive"] }
mimalloc = { version = "*", default-features = false } log = { version = "0.4.22", features = ["release_max_level_info"] }
mimalloc = { version = "0.1.43", default-features = false }
[build-dependencies] [build-dependencies]
cc = { version = "1.0", features = ["parallel"] } cc = { version = "1.1.22", features = ["parallel"] }
cmake = "0.1" cmake = "0.1.51"
which = "4.4" which = "6.0.3"
symcc_libafl = { path = "../../../../libafl_concolic/symcc_libafl" } symcc_libafl = { path = "../../../../libafl_concolic/symcc_libafl" }

View File

@ -20,4 +20,5 @@ panic = "abort"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies] [dependencies]
log = { version = "0.4.22", features = ["release_max_level_info"] }
symcc_runtime = { path = "../../../../libafl_concolic/symcc_runtime" } symcc_runtime = { path = "../../../../libafl_concolic/symcc_runtime" }

View File

@ -23,16 +23,16 @@ opt-level = 3
debug = true debug = true
[dependencies] [dependencies]
libafl = { path = "../../../libafl/", features = ["default", "nautilus"] } libafl = { path = "../../../libafl", features = ["default", "nautilus"] }
libafl_bolts = { path = "../../../libafl_bolts/" } libafl_bolts = { path = "../../../libafl_bolts" }
libafl_targets = { path = "../../../libafl_targets/", features = [ libafl_targets = { path = "../../../libafl_targets", features = [
"sancov_pcguard_hitcounts", "sancov_pcguard_hitcounts",
"libfuzzer", "libfuzzer",
] } ] }
# TODO Include it only when building cc # TODO Include it only when building cc
libafl_cc = { path = "../../../libafl_cc/" } libafl_cc = { path = "../../../libafl_cc" }
clap = { version = "4.5", features = ["derive"] } clap = { version = "4.5.18", features = ["derive"] }
mimalloc = { version = "*", default-features = false } mimalloc = { version = "0.1.43", default-features = false }
[lib] [lib]
name = "nautilus_sync" name = "nautilus_sync"

View File

@ -187,12 +187,14 @@ nautilus = [
] ]
[build-dependencies] [build-dependencies]
rustversion = "1.0" rustversion = "1.0.17"
[dev-dependencies] [dev-dependencies]
serde_json = { version = "1.0", default-features = false, features = ["alloc"] } serde_json = { workspace = true, default-features = false, features = [
"alloc",
] }
# clippy-suggested optimised byte counter # clippy-suggested optimised byte counter
bytecount = "0.6.3" bytecount = "0.6.8"
[dependencies] [dependencies]
libafl_bolts = { version = "0.13.2", path = "../libafl_bolts", default-features = false, features = [ libafl_bolts = { version = "0.13.2", path = "../libafl_bolts", default-features = false, features = [
@ -200,45 +202,40 @@ libafl_bolts = { version = "0.13.2", path = "../libafl_bolts", default-features
] } ] }
libafl_derive = { version = "0.13.2", path = "../libafl_derive", optional = true } libafl_derive = { version = "0.13.2", path = "../libafl_derive", optional = true }
rustversion = "1.0" rustversion = { workspace = true }
tuple_list = { version = "0.1.3" } tuple_list = { version = "0.1.3" }
hashbrown = { version = "0.14", features = [ hashbrown = { workspace = true, features = [
"serde", "serde",
"ahash", "ahash",
], default-features = false } # A faster hashmap, nostd compatible ], default-features = false } # A faster hashmap, nostd compatible
num-traits = { version = "0.2", default-features = false } num-traits = { workspace = true, default-features = false }
serde = { version = "1.0", default-features = false, features = [ serde = { workspace = true, features = ["alloc"] } # serialization lib
"alloc", postcard = { workspace = true } # no_std compatible serde serialization format
"derive", bincode = { version = "1.3.3", optional = true }
] } # serialization lib c2rust-bitfields = { version = "0.19.0", features = ["no_std"] }
postcard = { version = "1.0", features = [ ahash = { workspace = true } # The hash function already used in hashbrown
"alloc", meminterval = { workspace = true, features = ["serde"] }
], default-features = false } # no_std compatible serde serialization format backtrace = { workspace = true, optional = true } # Used to get the stacktrace in StacktraceObserver
bincode = { version = "1.3", optional = true } typed-builder = { workspace = true, optional = true } # Implement the builder pattern at compiletime
c2rust-bitfields = { version = "0.18", features = ["no_std"] }
ahash = { version = "0.8", default-features = false } # The hash function already used in hashbrown
meminterval = { version = "0.4", features = ["serde"] }
backtrace = { version = "0.3", optional = true } # Used to get the stacktrace in StacktraceObserver
typed-builder = { version = "0.18", optional = true } # Implement the builder pattern at compiletime
serde_json = { version = "1.0", optional = true, default-features = false, features = [ serde_json = { workspace = true, optional = true, default-features = false, features = [
"alloc", "alloc",
] } ] }
nix = { version = "0.29", optional = true } nix = { workspace = true, default-features = true, optional = true }
regex = { version = "1", optional = true } regex = { workspace = true, optional = true }
uuid = { version = "1.8", optional = true, features = ["serde", "v4"] } uuid = { workspace = true, optional = true, features = ["serde", "v4"] }
libm = "0.2" libm = "0.2.8"
ratatui = { version = "0.26", default-features = false, features = [ ratatui = { version = "0.28.1", default-features = false, features = [
'crossterm', 'crossterm',
], optional = true } # Commandline rendering, for TUI Monitor ], optional = true } # Commandline rendering, for TUI Monitor
crossterm = { version = "0.27", optional = true } crossterm = { version = "0.28.1", optional = true }
prometheus-client = { version = "0.22", optional = true } # For the prometheus monitor prometheus-client = { version = "0.22.3", optional = true } # For the prometheus monitor
tide = { version = "0.16", optional = true } tide = { version = "0.16.0", optional = true }
async-std = { version = "1.12", features = ["attributes"], optional = true } async-std = { version = "1.13.0", features = ["attributes"], optional = true }
futures = { version = "0.3", optional = true } futures = { version = "0.3.30", optional = true }
log = { version = "0.4" } log = { workspace = true }
tokio = { version = "1.38", optional = true, features = [ tokio = { version = "1.40.0", optional = true, features = [
"sync", "sync",
"net", "net",
"rt", "rt",
@ -247,42 +244,42 @@ tokio = { version = "1.38", optional = true, features = [
"rt-multi-thread", "rt-multi-thread",
"time", "time",
] } # used for TCP Event Manager and multi-machine ] } # used for TCP Event Manager and multi-machine
enumflags2 = { version = "0.7", optional = true } enumflags2 = { version = "0.7.10", optional = true }
wait-timeout = { version = "0.2", optional = true } # used by CommandExecutor to wait for child process wait-timeout = { version = "0.2.0", optional = true } # used by CommandExecutor to wait for child process
concat-idents = { version = "1.1.3", optional = true } concat-idents = { version = "1.1.5", optional = true }
libcasr = { version = "2.7", optional = true } libcasr = { version = "2.12.1", optional = true }
bitvec = { version = "1.0", optional = true, features = [ bitvec = { version = "1.0.1", optional = true, features = [
"serde", "serde",
] } # used for string range storage ] } # used for string range storage
arrayvec = { version = "0.7.4", optional = true, default-features = false } # used for fixed-len collects arrayvec = { version = "0.7.6", optional = true, default-features = false } # used for fixed-len collects
const_format = "0.2.32" # used for providing helpful compiler output const_format = "0.2.33" # used for providing helpful compiler output
const_panic = "0.2.8" # similarly, for formatting const panic output const_panic = "0.2.9" # similarly, for formatting const panic output
pyo3 = { version = "0.22", optional = true } # For nautilus pyo3 = { workspace = true, optional = true } # For nautilus
regex-syntax = { version = "0.8.3", optional = true } # For nautilus regex-syntax = { version = "0.8.4", optional = true } # For nautilus
# optional-dev deps (change when target.'cfg(accessible(::std))'.test-dependencies will be stable) # optional-dev deps (change when target.'cfg(accessible(::std))'.test-dependencies will be stable)
serial_test = { version = "3", optional = true, default-features = false, features = [ serial_test = { workspace = true, optional = true, default-features = false, features = [
"logging", "logging",
] } ] }
# Document all features of this crate (for `cargo doc`) # Document all features of this crate (for `cargo doc`)
document-features = { version = "0.2", optional = true } document-features = { workspace = true, optional = true }
# Optional # Optional
clap = { version = "4.5", optional = true } clap = { workspace = true, optional = true }
[target.'cfg(unix)'.dependencies] [target.'cfg(unix)'.dependencies]
libc = "0.2" # For (*nix) libc libc = { workspace = true } # For (*nix) libc
z3 = { version = "0.12.0", optional = true } # for concolic mutation z3 = { workspace = true, optional = true } # for concolic mutation
[target.'cfg(windows)'.dependencies] [target.'cfg(windows)'.dependencies]
windows = { version = "0.51.1", features = [ windows = { workspace = true, features = [
"Win32_Foundation", "Win32_Foundation",
"Win32_System_Threading", "Win32_System_Threading",
"Win32_System_Diagnostics_Debug", "Win32_System_Diagnostics_Debug",
@ -293,9 +290,4 @@ windows = { version = "0.51.1", features = [
] } ] }
[target.'cfg(windows)'.build-dependencies] [target.'cfg(windows)'.build-dependencies]
windows = "0.51.1" windows = { workspace = true }
#[profile.release]
#lto = true
#opt-level = 3
#debug = true

View File

@ -434,7 +434,7 @@ impl<'a> TreeMutation<'a> {
} }
} }
impl<'a> TreeLike for TreeMutation<'a> { impl TreeLike for TreeMutation<'_> {
fn get_rule_id(&self, n: NodeId) -> RuleId { fn get_rule_id(&self, n: NodeId) -> RuleId {
self.get_at(n).id() self.get_at(n).id()
} }

View File

@ -222,7 +222,7 @@ where
cur_back: Option<CorpusId>, cur_back: Option<CorpusId>,
} }
impl<'a, C> Iterator for CorpusIdIterator<'a, C> impl<C> Iterator for CorpusIdIterator<'_, C>
where where
C: Corpus, C: Corpus,
{ {
@ -238,7 +238,7 @@ where
} }
} }
impl<'a, C> DoubleEndedIterator for CorpusIdIterator<'a, C> impl<C> DoubleEndedIterator for CorpusIdIterator<'_, C>
where where
C: Corpus, C: Corpus,
{ {

View File

@ -166,7 +166,7 @@ impl<CF, MT, SP> Debug for Launcher<'_, CF, MT, SP> {
} }
} }
impl<'a, CF, MT, SP> Launcher<'a, CF, MT, SP> impl<CF, MT, SP> Launcher<'_, CF, MT, SP>
where where
MT: Monitor + Clone, MT: Monitor + Clone,
SP: ShMemProvider, SP: ShMemProvider,
@ -194,7 +194,7 @@ where
} }
#[cfg(feature = "std")] #[cfg(feature = "std")]
impl<'a, CF, MT, SP> Launcher<'a, CF, MT, SP> impl<CF, MT, SP> Launcher<'_, CF, MT, SP>
where where
MT: Monitor + Clone, MT: Monitor + Clone,
SP: ShMemProvider, SP: ShMemProvider,
@ -568,7 +568,7 @@ impl<CF, MF, MT, SP> Debug for CentralizedLauncher<'_, CF, MF, MT, SP> {
pub type StdCentralizedInnerMgr<S, SP> = LlmpRestartingEventManager<(), S, SP>; pub type StdCentralizedInnerMgr<S, SP> = LlmpRestartingEventManager<(), S, SP>;
#[cfg(all(unix, feature = "std", feature = "fork"))] #[cfg(all(unix, feature = "std", feature = "fork"))]
impl<'a, CF, MF, MT, SP> CentralizedLauncher<'a, CF, MF, MT, SP> impl<CF, MF, MT, SP> CentralizedLauncher<'_, CF, MF, MT, SP>
where where
MT: Monitor + Clone + 'static, MT: Monitor + Clone + 'static,
SP: ShMemProvider + 'static, SP: ShMemProvider + 'static,
@ -612,7 +612,7 @@ where
} }
#[cfg(all(unix, feature = "std", feature = "fork"))] #[cfg(all(unix, feature = "std", feature = "fork"))]
impl<'a, CF, MF, MT, SP> CentralizedLauncher<'a, CF, MF, MT, SP> impl<CF, MF, MT, SP> CentralizedLauncher<'_, CF, MF, MT, SP>
where where
MT: Monitor + Clone + 'static, MT: Monitor + Clone + 'static,
SP: ShMemProvider + 'static, SP: ShMemProvider + 'static,

View File

@ -63,8 +63,8 @@ where
} }
/// We do not use raw pointers, so no problem with thead-safety /// We do not use raw pointers, so no problem with thead-safety
unsafe impl<'a, I: Input> Send for MultiMachineMsg<'a, I> {} unsafe impl<I: Input> Send for MultiMachineMsg<'_, I> {}
unsafe impl<'a, I: Input> Sync for MultiMachineMsg<'a, I> {} unsafe impl<I: Input> Sync for MultiMachineMsg<'_, I> {}
impl<'a, I> MultiMachineMsg<'a, I> impl<'a, I> MultiMachineMsg<'a, I>
where where

View File

@ -845,9 +845,9 @@ where
if Self::is_old_forkserver(version_status) { if Self::is_old_forkserver(version_status) {
log::info!("Old fork server model is used by the target, this still works though."); log::info!("Old fork server model is used by the target, this still works though.");
self.initialize_old_forkserver(version_status, &map, &mut forkserver)?; self.initialize_old_forkserver(version_status, map.as_ref(), &mut forkserver)?;
} else { } else {
self.initialize_forkserver(version_status, &map, &mut forkserver)?; self.initialize_forkserver(version_status, map.as_ref(), &mut forkserver)?;
} }
Ok((forkserver, input_file, map)) Ok((forkserver, input_file, map))
} }
@ -862,7 +862,7 @@ where
fn initialize_forkserver( fn initialize_forkserver(
&mut self, &mut self,
status: i32, status: i32,
map: &Option<SP::ShMem>, map: Option<&SP::ShMem>,
forkserver: &mut Forkserver, forkserver: &mut Forkserver,
) -> Result<(), Error> { ) -> Result<(), Error> {
let keep = status; let keep = status;
@ -968,7 +968,7 @@ where
fn initialize_old_forkserver( fn initialize_old_forkserver(
&mut self, &mut self,
status: i32, status: i32,
map: &Option<SP::ShMem>, map: Option<&SP::ShMem>,
forkserver: &mut Forkserver, forkserver: &mut Forkserver,
) -> Result<(), Error> { ) -> Result<(), Error> {
if status & FS_OPT_ENABLED == FS_OPT_ENABLED && status & FS_OPT_MAPSIZE == FS_OPT_MAPSIZE { if status & FS_OPT_ENABLED == FS_OPT_ENABLED && status & FS_OPT_MAPSIZE == FS_OPT_MAPSIZE {
@ -1347,7 +1347,7 @@ impl<'a> ForkserverExecutorBuilder<'a, UnixShMemProvider> {
} }
} }
impl<'a> Default for ForkserverExecutorBuilder<'a, UnixShMemProvider> { impl Default for ForkserverExecutorBuilder<'_, UnixShMemProvider> {
fn default() -> Self { fn default() -> Self {
Self::new() Self::new()
} }

View File

@ -157,7 +157,7 @@ pub mod windows_exception_handler {
impl ExceptionHandler for InProcessExecutorHandlerData { impl ExceptionHandler for InProcessExecutorHandlerData {
/// # Safety /// # Safety
/// Will dereference EXCEPTION_POINTERS and access `GLOBAL_STATE`. /// Will dereference `EXCEPTION_POINTERS` and access `GLOBAL_STATE`.
#[allow(clippy::not_unsafe_ptr_arg_deref)] #[allow(clippy::not_unsafe_ptr_arg_deref)]
unsafe fn handle( unsafe fn handle(
&mut self, &mut self,

View File

@ -99,8 +99,7 @@ where
inner: GenericInProcessForkExecutorInner<HT, OT, S, SP, EM, Z>, inner: GenericInProcessForkExecutorInner<HT, OT, S, SP, EM, Z>,
} }
impl<'a, H, HT, OT, S, SP, EM, Z> Debug impl<H, HT, OT, S, SP, EM, Z> Debug for GenericInProcessForkExecutor<'_, H, HT, OT, S, SP, EM, Z>
for GenericInProcessForkExecutor<'a, H, HT, OT, S, SP, EM, Z>
where where
H: FnMut(&S::Input) -> ExitKind + ?Sized, H: FnMut(&S::Input) -> ExitKind + ?Sized,
OT: ObserversTuple<S::Input, S> + Debug, OT: ObserversTuple<S::Input, S> + Debug,
@ -127,8 +126,8 @@ where
} }
} }
impl<'a, H, HT, OT, S, SP, EM, Z> UsesState impl<H, HT, OT, S, SP, EM, Z> UsesState
for GenericInProcessForkExecutor<'a, H, HT, OT, S, SP, EM, Z> for GenericInProcessForkExecutor<'_, H, HT, OT, S, SP, EM, Z>
where where
H: FnMut(&S::Input) -> ExitKind + ?Sized, H: FnMut(&S::Input) -> ExitKind + ?Sized,
OT: ObserversTuple<S::Input, S>, OT: ObserversTuple<S::Input, S>,
@ -141,8 +140,8 @@ where
type State = S; type State = S;
} }
impl<'a, EM, H, HT, OT, S, SP, Z> Executor<EM, Z> impl<EM, H, HT, OT, S, SP, Z> Executor<EM, Z>
for GenericInProcessForkExecutor<'a, H, HT, OT, S, SP, EM, Z> for GenericInProcessForkExecutor<'_, H, HT, OT, S, SP, EM, Z>
where where
H: FnMut(&S::Input) -> ExitKind + ?Sized, H: FnMut(&S::Input) -> ExitKind + ?Sized,
OT: ObserversTuple<S::Input, S> + Debug, OT: ObserversTuple<S::Input, S> + Debug,
@ -234,8 +233,8 @@ where {
} }
} }
impl<'a, H, HT, OT, S, SP, EM, Z> HasObservers impl<H, HT, OT, S, SP, EM, Z> HasObservers
for GenericInProcessForkExecutor<'a, H, HT, OT, S, SP, EM, Z> for GenericInProcessForkExecutor<'_, H, HT, OT, S, SP, EM, Z>
where where
H: FnMut(&S::Input) -> ExitKind + ?Sized, H: FnMut(&S::Input) -> ExitKind + ?Sized,
HT: ExecutorHooksTuple<S>, HT: ExecutorHooksTuple<S>,

View File

@ -85,8 +85,8 @@ where
phantom: PhantomData<ES>, phantom: PhantomData<ES>,
} }
impl<'a, H, HT, OT, S, SP, ES, EM, Z> Debug impl<H, HT, OT, S, SP, ES, EM, Z> Debug
for StatefulGenericInProcessForkExecutor<'a, H, HT, OT, S, SP, ES, EM, Z> for StatefulGenericInProcessForkExecutor<'_, H, HT, OT, S, SP, ES, EM, Z>
where where
H: FnMut(&S::Input, &mut ES) -> ExitKind + ?Sized, H: FnMut(&S::Input, &mut ES) -> ExitKind + ?Sized,
OT: ObserversTuple<S::Input, S> + Debug, OT: ObserversTuple<S::Input, S> + Debug,
@ -113,8 +113,8 @@ where
} }
} }
impl<'a, H, HT, OT, S, SP, ES, EM, Z> UsesState impl<H, HT, OT, S, SP, ES, EM, Z> UsesState
for StatefulGenericInProcessForkExecutor<'a, H, HT, OT, S, SP, ES, EM, Z> for StatefulGenericInProcessForkExecutor<'_, H, HT, OT, S, SP, ES, EM, Z>
where where
H: FnMut(&S::Input, &mut ES) -> ExitKind + ?Sized, H: FnMut(&S::Input, &mut ES) -> ExitKind + ?Sized,
OT: ObserversTuple<S::Input, S>, OT: ObserversTuple<S::Input, S>,
@ -127,8 +127,8 @@ where
type State = S; type State = S;
} }
impl<'a, EM, H, HT, OT, S, SP, Z, ES, OF> Executor<EM, Z> impl<EM, H, HT, OT, S, SP, Z, ES, OF> Executor<EM, Z>
for StatefulGenericInProcessForkExecutor<'a, H, HT, OT, S, SP, ES, EM, Z> for StatefulGenericInProcessForkExecutor<'_, H, HT, OT, S, SP, ES, EM, Z>
where where
H: FnMut(&S::Input, &mut ES) -> ExitKind + ?Sized, H: FnMut(&S::Input, &mut ES) -> ExitKind + ?Sized,
OT: ObserversTuple<S::Input, S> + Debug, OT: ObserversTuple<S::Input, S> + Debug,
@ -225,8 +225,8 @@ where
} }
} }
impl<'a, H, HT, OT, S, SP, ES, EM, Z> HasObservers impl<H, HT, OT, S, SP, ES, EM, Z> HasObservers
for StatefulGenericInProcessForkExecutor<'a, H, HT, OT, S, SP, ES, EM, Z> for StatefulGenericInProcessForkExecutor<'_, H, HT, OT, S, SP, ES, EM, Z>
where where
H: FnMut(&S::Input, &mut ES) -> ExitKind + ?Sized, H: FnMut(&S::Input, &mut ES) -> ExitKind + ?Sized,
HT: ExecutorHooksTuple<S>, HT: ExecutorHooksTuple<S>,

View File

@ -62,16 +62,16 @@ impl<'a> NautilusFeedback<'a> {
} }
} }
impl<'a> Named for NautilusFeedback<'a> { impl Named for NautilusFeedback<'_> {
fn name(&self) -> &Cow<'static, str> { fn name(&self) -> &Cow<'static, str> {
static NAME: Cow<'static, str> = Cow::Borrowed("NautilusFeedback"); static NAME: Cow<'static, str> = Cow::Borrowed("NautilusFeedback");
&NAME &NAME
} }
} }
impl<'a, S> StateInitializer<S> for NautilusFeedback<'a> {} impl<S> StateInitializer<S> for NautilusFeedback<'_> {}
impl<'a, EM, OT, S> Feedback<EM, NautilusInput, OT, S> for NautilusFeedback<'a> impl<EM, OT, S> Feedback<EM, NautilusInput, OT, S> for NautilusFeedback<'_>
where where
S: HasMetadata + HasCorpus, S: HasMetadata + HasCorpus,
S::Corpus: Corpus<Input = NautilusInput>, S::Corpus: Corpus<Input = NautilusInput>,

View File

@ -39,7 +39,7 @@ pub struct GramatronGenerator<'a, S> {
phantom: PhantomData<S>, phantom: PhantomData<S>,
} }
impl<'a, S> Generator<GramatronInput, S> for GramatronGenerator<'a, S> impl<S> Generator<GramatronInput, S> for GramatronGenerator<'_, S>
where where
S: HasRand, S: HasRand,
{ {

View File

@ -61,7 +61,7 @@ impl<'a, I, S, G> GeneratorIter<'a, I, S, G> {
} }
} }
impl<'a, I, S, G> Iterator for GeneratorIter<'a, I, S, G> impl<I, S, G> Iterator for GeneratorIter<'_, I, S, G>
where where
G: Generator<I, S>, G: Generator<I, S>,
{ {

View File

@ -107,7 +107,7 @@ impl Debug for NautilusGenerator<'_> {
} }
} }
impl<'a, S: HasRand> Generator<NautilusInput, S> for NautilusGenerator<'a> { impl<S: HasRand> Generator<NautilusInput, S> for NautilusGenerator<'_> {
fn generate(&mut self, state: &mut S) -> Result<NautilusInput, Error> { fn generate(&mut self, state: &mut S) -> Result<NautilusInput, Error> {
let nonterm = self.nonterminal("START"); let nonterm = self.nonterminal("START");
let len = self.ctx.get_random_len_for_nt(&nonterm); let len = self.ctx.get_random_len_for_nt(&nonterm);

View File

@ -96,7 +96,7 @@ where
} }
} }
impl<'a, I> HasMutatorBytes for BytesSubInput<'a, I> impl<I> HasMutatorBytes for BytesSubInput<'_, I>
where where
I: HasMutatorBytes, I: HasMutatorBytes,
{ {
@ -192,7 +192,7 @@ where
} }
} }
impl<'a, I> HasLen for BytesSubInput<'a, I> impl<I> HasLen for BytesSubInput<'_, I>
where where
I: HasMutatorBytes, I: HasMutatorBytes,
{ {
@ -202,7 +202,7 @@ where
} }
} }
impl<'a, I> MappedInput for BytesSubInput<'a, I> { impl<I> MappedInput for BytesSubInput<'_, I> {
type Type<'b> type Type<'b>
= BytesSubInput<'b, I> = BytesSubInput<'b, I>
where where

View File

@ -219,13 +219,13 @@ impl<'a> From<&'a mut Vec<u8>> for MutVecInput<'a> {
} }
} }
impl<'a> HasLen for MutVecInput<'a> { impl HasLen for MutVecInput<'_> {
fn len(&self) -> usize { fn len(&self) -> usize {
self.0.len() self.0.len()
} }
} }
impl<'a> HasMutatorBytes for MutVecInput<'a> { impl HasMutatorBytes for MutVecInput<'_> {
fn bytes(&self) -> &[u8] { fn bytes(&self) -> &[u8] {
self.0 self.0
} }
@ -258,7 +258,7 @@ impl<'a> HasMutatorBytes for MutVecInput<'a> {
} }
} }
impl<'a> MappedInput for MutVecInput<'a> { impl MappedInput for MutVecInput<'_> {
type Type<'b> type Type<'b>
= MutVecInput<'b> = MutVecInput<'b>
where where

View File

@ -127,7 +127,7 @@ impl<'a> NautilusToBytesInputConverter<'a> {
} }
} }
impl<'a> InputConverter for NautilusToBytesInputConverter<'a> { impl InputConverter for NautilusToBytesInputConverter<'_> {
type From = NautilusInput; type From = NautilusInput;
type To = BytesInput; type To = BytesInput;

View File

@ -116,7 +116,7 @@ impl TuiUi {
} else { } else {
[Constraint::Percentage(50), Constraint::Percentage(50)].as_ref() [Constraint::Percentage(50), Constraint::Percentage(50)].as_ref()
}) })
.split(f.size()); .split(f.area());
let top_body = body[0]; let top_body = body[0];
let mid_body = body[1]; let mid_body = body[1];

View File

@ -32,7 +32,7 @@ where
generator: &'a GramatronGenerator<'a, S>, generator: &'a GramatronGenerator<'a, S>,
} }
impl<'a, S> Mutator<GramatronInput, S> for GramatronRandomMutator<'a, S> impl<S> Mutator<GramatronInput, S> for GramatronRandomMutator<'_, S>
where where
S: HasRand + HasMetadata, S: HasRand + HasMetadata,
{ {
@ -58,7 +58,7 @@ where
} }
} }
impl<'a, S> Named for GramatronRandomMutator<'a, S> impl<S> Named for GramatronRandomMutator<'_, S>
where where
S: HasRand + HasMetadata, S: HasRand + HasMetadata,
{ {

View File

@ -1297,7 +1297,7 @@ trait IntoOptionBytes {
Self: 'a; Self: 'a;
} }
impl<'a> IntoOptionBytes for &'a [u8] { impl IntoOptionBytes for &[u8] {
type Type<'b> = &'b [u8]; type Type<'b> = &'b [u8];
fn into_option_bytes<'b>(self) -> Option<&'b [u8]> fn into_option_bytes<'b>(self) -> Option<&'b [u8]>
@ -1308,7 +1308,7 @@ impl<'a> IntoOptionBytes for &'a [u8] {
} }
} }
impl<'a> IntoOptionBytes for Option<&'a [u8]> { impl IntoOptionBytes for Option<&[u8]> {
type Type<'b> = Option<&'b [u8]>; type Type<'b> = Option<&'b [u8]>;
fn into_option_bytes<'b>(self) -> Option<&'b [u8]> fn into_option_bytes<'b>(self) -> Option<&'b [u8]>

View File

@ -226,7 +226,7 @@ pub struct StdCmpObserver<'a, CM> {
add_meta: bool, add_meta: bool,
} }
impl<'a, CM> CmpObserver for StdCmpObserver<'a, CM> impl<CM> CmpObserver for StdCmpObserver<'_, CM>
where where
CM: HasLen, CM: HasLen,
{ {
@ -249,7 +249,7 @@ where
} }
} }
impl<'a, CM, I, S> Observer<I, S> for StdCmpObserver<'a, CM> impl<CM, I, S> Observer<I, S> for StdCmpObserver<'_, CM>
where where
CM: Serialize + CmpMap + HasLen, CM: Serialize + CmpMap + HasLen,
S: HasMetadata, S: HasMetadata,
@ -270,7 +270,7 @@ where
} }
} }
impl<'a, CM> Named for StdCmpObserver<'a, CM> { impl<CM> Named for StdCmpObserver<'_, CM> {
fn name(&self) -> &Cow<'static, str> { fn name(&self) -> &Cow<'static, str> {
&self.name &self.name
} }

View File

@ -16,9 +16,9 @@ pub struct ConcolicObserver<'map> {
name: Cow<'static, str>, name: Cow<'static, str>,
} }
impl<'map, I, S> Observer<I, S> for ConcolicObserver<'map> {} impl<I, S> Observer<I, S> for ConcolicObserver<'_> {}
impl<'map> ConcolicObserver<'map> { impl ConcolicObserver<'_> {
/// Create the concolic observer metadata for this run /// Create the concolic observer metadata for this run
#[must_use] #[must_use]
pub fn create_metadata_from_current_map(&self) -> ConcolicMetadata { pub fn create_metadata_from_current_map(&self) -> ConcolicMetadata {
@ -28,7 +28,7 @@ impl<'map> ConcolicObserver<'map> {
} }
} }
impl<'map> Named for ConcolicObserver<'map> { impl Named for ConcolicObserver<'_> {
fn name(&self) -> &Cow<'static, str> { fn name(&self) -> &Cow<'static, str> {
&self.name &self.name
} }

View File

@ -26,7 +26,7 @@ pub struct ConstMapObserver<'a, T, const N: usize> {
name: Cow<'static, str>, name: Cow<'static, str>,
} }
impl<'a, I, S, T, const N: usize> Observer<I, S> for ConstMapObserver<'a, T, N> impl<I, S, T, const N: usize> Observer<I, S> for ConstMapObserver<'_, T, N>
where where
Self: MapObserver, Self: MapObserver,
{ {
@ -36,21 +36,21 @@ where
} }
} }
impl<'a, T, const N: usize> Named for ConstMapObserver<'a, T, N> { impl<T, const N: usize> Named for ConstMapObserver<'_, T, N> {
#[inline] #[inline]
fn name(&self) -> &Cow<'static, str> { fn name(&self) -> &Cow<'static, str> {
&self.name &self.name
} }
} }
impl<'a, T, const N: usize> HasLen for ConstMapObserver<'a, T, N> { impl<T, const N: usize> HasLen for ConstMapObserver<'_, T, N> {
#[inline] #[inline]
fn len(&self) -> usize { fn len(&self) -> usize {
N N
} }
} }
impl<'a, T, const N: usize> Hash for ConstMapObserver<'a, T, N> impl<T, const N: usize> Hash for ConstMapObserver<'_, T, N>
where where
T: Hash, T: Hash,
{ {
@ -59,19 +59,19 @@ where
self.map.as_slice().hash(hasher); self.map.as_slice().hash(hasher);
} }
} }
impl<'a, T, const N: usize> AsRef<Self> for ConstMapObserver<'a, T, N> { impl<T, const N: usize> AsRef<Self> for ConstMapObserver<'_, T, N> {
fn as_ref(&self) -> &Self { fn as_ref(&self) -> &Self {
self self
} }
} }
impl<'a, T, const N: usize> AsMut<Self> for ConstMapObserver<'a, T, N> { impl<T, const N: usize> AsMut<Self> for ConstMapObserver<'_, T, N> {
fn as_mut(&mut self) -> &mut Self { fn as_mut(&mut self) -> &mut Self {
self self
} }
} }
impl<'a, T, const N: usize> MapObserver for ConstMapObserver<'a, T, N> impl<T, const N: usize> MapObserver for ConstMapObserver<'_, T, N>
where where
T: PartialEq + Copy + Hash + Serialize + DeserializeOwned + Debug + 'static, T: PartialEq + Copy + Hash + Serialize + DeserializeOwned + Debug + 'static,
{ {
@ -147,14 +147,14 @@ where
} }
} }
impl<'a, T, const N: usize> Deref for ConstMapObserver<'a, T, N> { impl<T, const N: usize> Deref for ConstMapObserver<'_, T, N> {
type Target = [T]; type Target = [T];
fn deref(&self) -> &[T] { fn deref(&self) -> &[T] {
&self.map &self.map
} }
} }
impl<'a, T, const N: usize> DerefMut for ConstMapObserver<'a, T, N> { impl<T, const N: usize> DerefMut for ConstMapObserver<'_, T, N> {
fn deref_mut(&mut self) -> &mut [T] { fn deref_mut(&mut self) -> &mut [T] {
&mut self.map &mut self.map
} }
@ -192,7 +192,7 @@ where
} }
} }
impl<'a, T, const N: usize> ConstMapObserver<'a, T, N> impl<T, const N: usize> ConstMapObserver<'_, T, N>
where where
T: Default + Clone, T: Default + Clone,
{ {

View File

@ -414,7 +414,7 @@ pub struct StdMapObserver<'a, T, const DIFFERENTIAL: bool> {
name: Cow<'static, str>, name: Cow<'static, str>,
} }
impl<'a, I, S, T> Observer<I, S> for StdMapObserver<'a, T, false> impl<I, S, T> Observer<I, S> for StdMapObserver<'_, T, false>
where where
Self: MapObserver, Self: MapObserver,
{ {
@ -424,23 +424,23 @@ where
} }
} }
impl<'a, I, S, T> Observer<I, S> for StdMapObserver<'a, T, true> {} impl<I, S, T> Observer<I, S> for StdMapObserver<'_, T, true> {}
impl<'a, T, const DIFFERENTIAL: bool> Named for StdMapObserver<'a, T, DIFFERENTIAL> { impl<T, const DIFFERENTIAL: bool> Named for StdMapObserver<'_, T, DIFFERENTIAL> {
#[inline] #[inline]
fn name(&self) -> &Cow<'static, str> { fn name(&self) -> &Cow<'static, str> {
&self.name &self.name
} }
} }
impl<'a, T, const DIFFERENTIAL: bool> HasLen for StdMapObserver<'a, T, DIFFERENTIAL> { impl<T, const DIFFERENTIAL: bool> HasLen for StdMapObserver<'_, T, DIFFERENTIAL> {
#[inline] #[inline]
fn len(&self) -> usize { fn len(&self) -> usize {
self.map.as_slice().len() self.map.as_slice().len()
} }
} }
impl<'a, T, const DIFFERENTIAL: bool> Hash for StdMapObserver<'a, T, DIFFERENTIAL> impl<T, const DIFFERENTIAL: bool> Hash for StdMapObserver<'_, T, DIFFERENTIAL>
where where
T: Hash, T: Hash,
{ {
@ -450,19 +450,19 @@ where
} }
} }
impl<'a, T, const DIFFERENTIAL: bool> AsRef<Self> for StdMapObserver<'a, T, DIFFERENTIAL> { impl<T, const DIFFERENTIAL: bool> AsRef<Self> for StdMapObserver<'_, T, DIFFERENTIAL> {
fn as_ref(&self) -> &Self { fn as_ref(&self) -> &Self {
self self
} }
} }
impl<'a, T, const DIFFERENTIAL: bool> AsMut<Self> for StdMapObserver<'a, T, DIFFERENTIAL> { impl<T, const DIFFERENTIAL: bool> AsMut<Self> for StdMapObserver<'_, T, DIFFERENTIAL> {
fn as_mut(&mut self) -> &mut Self { fn as_mut(&mut self) -> &mut Self {
self self
} }
} }
impl<'a, T, const DIFFERENTIAL: bool> MapObserver for StdMapObserver<'a, T, DIFFERENTIAL> impl<T, const DIFFERENTIAL: bool> MapObserver for StdMapObserver<'_, T, DIFFERENTIAL>
where where
T: PartialEq + Copy + Hash + Serialize + DeserializeOwned + Debug, T: PartialEq + Copy + Hash + Serialize + DeserializeOwned + Debug,
{ {
@ -537,20 +537,20 @@ where
} }
} }
impl<'a, T, const DIFFERENTIAL: bool> Truncate for StdMapObserver<'a, T, DIFFERENTIAL> { impl<T, const DIFFERENTIAL: bool> Truncate for StdMapObserver<'_, T, DIFFERENTIAL> {
fn truncate(&mut self, new_len: usize) { fn truncate(&mut self, new_len: usize) {
self.map.truncate(new_len); self.map.truncate(new_len);
} }
} }
impl<'a, T, const DIFFERENTIAL: bool> Deref for StdMapObserver<'a, T, DIFFERENTIAL> { impl<T, const DIFFERENTIAL: bool> Deref for StdMapObserver<'_, T, DIFFERENTIAL> {
type Target = [T]; type Target = [T];
fn deref(&self) -> &[T] { fn deref(&self) -> &[T] {
&self.map &self.map
} }
} }
impl<'a, T, const DIFFERENTIAL: bool> DerefMut for StdMapObserver<'a, T, DIFFERENTIAL> { impl<T, const DIFFERENTIAL: bool> DerefMut for StdMapObserver<'_, T, DIFFERENTIAL> {
fn deref_mut(&mut self) -> &mut [T] { fn deref_mut(&mut self) -> &mut [T] {
&mut self.map &mut self.map
} }
@ -755,4 +755,4 @@ where
} }
} }
impl<'a, OTA, OTB, I, S, T> DifferentialObserver<OTA, OTB, I, S> for StdMapObserver<'a, T, true> {} impl<OTA, OTB, I, S, T> DifferentialObserver<OTA, OTB, I, S> for StdMapObserver<'_, T, true> {}

View File

@ -32,7 +32,7 @@ pub struct MultiMapObserver<'a, T, const DIFFERENTIAL: bool> {
iter_idx: usize, iter_idx: usize,
} }
impl<'a, I, S, T> Observer<I, S> for MultiMapObserver<'a, T, false> impl<I, S, T> Observer<I, S> for MultiMapObserver<'_, T, false>
where where
Self: MapObserver, Self: MapObserver,
{ {
@ -42,25 +42,25 @@ where
} }
} }
impl<'a, I, S, T> Observer<I, S> for MultiMapObserver<'a, T, true> { impl<I, S, T> Observer<I, S> for MultiMapObserver<'_, T, true> {
// in differential mode, we are *not* responsible for resetting the map! // in differential mode, we are *not* responsible for resetting the map!
} }
impl<'a, T, const DIFFERENTIAL: bool> Named for MultiMapObserver<'a, T, DIFFERENTIAL> { impl<T, const DIFFERENTIAL: bool> Named for MultiMapObserver<'_, T, DIFFERENTIAL> {
#[inline] #[inline]
fn name(&self) -> &Cow<'static, str> { fn name(&self) -> &Cow<'static, str> {
&self.name &self.name
} }
} }
impl<'a, T, const DIFFERENTIAL: bool> HasLen for MultiMapObserver<'a, T, DIFFERENTIAL> { impl<T, const DIFFERENTIAL: bool> HasLen for MultiMapObserver<'_, T, DIFFERENTIAL> {
#[inline] #[inline]
fn len(&self) -> usize { fn len(&self) -> usize {
self.len self.len
} }
} }
impl<'a, T, const DIFFERENTIAL: bool> Hash for MultiMapObserver<'a, T, DIFFERENTIAL> impl<T, const DIFFERENTIAL: bool> Hash for MultiMapObserver<'_, T, DIFFERENTIAL>
where where
T: Hash, T: Hash,
{ {
@ -73,19 +73,19 @@ where
} }
} }
impl<'a, T, const DIFFERENTIAL: bool> AsRef<Self> for MultiMapObserver<'a, T, DIFFERENTIAL> { impl<T, const DIFFERENTIAL: bool> AsRef<Self> for MultiMapObserver<'_, T, DIFFERENTIAL> {
fn as_ref(&self) -> &Self { fn as_ref(&self) -> &Self {
self self
} }
} }
impl<'a, T, const DIFFERENTIAL: bool> AsMut<Self> for MultiMapObserver<'a, T, DIFFERENTIAL> { impl<T, const DIFFERENTIAL: bool> AsMut<Self> for MultiMapObserver<'_, T, DIFFERENTIAL> {
fn as_mut(&mut self) -> &mut Self { fn as_mut(&mut self) -> &mut Self {
self self
} }
} }
impl<'a, T, const DIFFERENTIAL: bool> MapObserver for MultiMapObserver<'a, T, DIFFERENTIAL> impl<T, const DIFFERENTIAL: bool> MapObserver for MultiMapObserver<'_, T, DIFFERENTIAL>
where where
T: PartialEq + Copy + Hash + Serialize + DeserializeOwned + Debug, T: PartialEq + Copy + Hash + Serialize + DeserializeOwned + Debug,
{ {
@ -267,4 +267,4 @@ where
} }
} }
impl<'a, OTA, OTB, I, S, T> DifferentialObserver<OTA, OTB, I, S> for MultiMapObserver<'a, T, true> {} impl<OTA, OTB, I, S, T> DifferentialObserver<OTA, OTB, I, S> for MultiMapObserver<'_, T, true> {}

View File

@ -29,7 +29,7 @@ pub struct VariableMapObserver<'a, T> {
name: Cow<'static, str>, name: Cow<'static, str>,
} }
impl<'a, I, S, T> Observer<I, S> for VariableMapObserver<'a, T> impl<I, S, T> Observer<I, S> for VariableMapObserver<'_, T>
where where
Self: MapObserver, Self: MapObserver,
{ {
@ -39,21 +39,21 @@ where
} }
} }
impl<'a, T> Named for VariableMapObserver<'a, T> { impl<T> Named for VariableMapObserver<'_, T> {
#[inline] #[inline]
fn name(&self) -> &Cow<'static, str> { fn name(&self) -> &Cow<'static, str> {
&self.name &self.name
} }
} }
impl<'a, T> HasLen for VariableMapObserver<'a, T> { impl<T> HasLen for VariableMapObserver<'_, T> {
#[inline] #[inline]
fn len(&self) -> usize { fn len(&self) -> usize {
*self.size.as_ref() *self.size.as_ref()
} }
} }
impl<'a, T> Hash for VariableMapObserver<'a, T> impl<T> Hash for VariableMapObserver<'_, T>
where where
T: Hash, T: Hash,
{ {
@ -63,19 +63,19 @@ where
} }
} }
impl<'a, T> AsRef<Self> for VariableMapObserver<'a, T> { impl<T> AsRef<Self> for VariableMapObserver<'_, T> {
fn as_ref(&self) -> &Self { fn as_ref(&self) -> &Self {
self self
} }
} }
impl<'a, T> AsMut<Self> for VariableMapObserver<'a, T> { impl<T> AsMut<Self> for VariableMapObserver<'_, T> {
fn as_mut(&mut self) -> &mut Self { fn as_mut(&mut self) -> &mut Self {
self self
} }
} }
impl<'a, T> MapObserver for VariableMapObserver<'a, T> impl<T> MapObserver for VariableMapObserver<'_, T>
where where
T: PartialEq + Copy + Hash + Serialize + DeserializeOwned + Debug, T: PartialEq + Copy + Hash + Serialize + DeserializeOwned + Debug,
{ {
@ -149,7 +149,7 @@ where
} }
} }
impl<'a, T> Deref for VariableMapObserver<'a, T> { impl<T> Deref for VariableMapObserver<'_, T> {
type Target = [T]; type Target = [T];
fn deref(&self) -> &[T] { fn deref(&self) -> &[T] {
let cnt = *self.size.as_ref(); let cnt = *self.size.as_ref();
@ -157,7 +157,7 @@ impl<'a, T> Deref for VariableMapObserver<'a, T> {
} }
} }
impl<'a, T> DerefMut for VariableMapObserver<'a, T> { impl<T> DerefMut for VariableMapObserver<'_, T> {
fn deref_mut(&mut self) -> &mut [T] { fn deref_mut(&mut self) -> &mut [T] {
let cnt = *self.size.as_ref(); let cnt = *self.size.as_ref();
&mut self.map[..cnt] &mut self.map[..cnt]

View File

@ -188,7 +188,7 @@ impl<'a> BacktraceObserver<'a> {
} }
} }
impl<'a> ObserverWithHashField for BacktraceObserver<'a> { impl ObserverWithHashField for BacktraceObserver<'_> {
/// Gets the hash value of this observer. /// Gets the hash value of this observer.
#[must_use] #[must_use]
fn hash(&self) -> Option<u64> { fn hash(&self) -> Option<u64> {
@ -196,7 +196,7 @@ impl<'a> ObserverWithHashField for BacktraceObserver<'a> {
} }
} }
impl<'a, I, S> Observer<I, S> for BacktraceObserver<'a> { impl<I, S> Observer<I, S> for BacktraceObserver<'_> {
fn post_exec(&mut self, _state: &mut S, _input: &I, exit_kind: &ExitKind) -> Result<(), Error> { fn post_exec(&mut self, _state: &mut S, _input: &I, exit_kind: &ExitKind) -> Result<(), Error> {
if self.harness_type == HarnessType::InProcess { if self.harness_type == HarnessType::InProcess {
if *exit_kind == ExitKind::Crash { if *exit_kind == ExitKind::Crash {
@ -218,7 +218,7 @@ impl<'a, I, S> Observer<I, S> for BacktraceObserver<'a> {
} }
} }
impl<'a> Named for BacktraceObserver<'a> { impl Named for BacktraceObserver<'_> {
fn name(&self) -> &Cow<'static, str> { fn name(&self) -> &Cow<'static, str> {
&self.observer_name &self.observer_name
} }

View File

@ -66,15 +66,15 @@ impl<'a, T> ValueObserver<'a, T> {
} }
/// This *does not* reset the value inside the observer. /// This *does not* reset the value inside the observer.
impl<'a, I, S, T> Observer<I, S> for ValueObserver<'a, T> {} impl<I, S, T> Observer<I, S> for ValueObserver<'_, T> {}
impl<'a, T> Named for ValueObserver<'a, T> { impl<T> Named for ValueObserver<'_, T> {
fn name(&self) -> &Cow<'static, str> { fn name(&self) -> &Cow<'static, str> {
&self.name &self.name
} }
} }
impl<'a, T: Hash> ObserverWithHashField for ValueObserver<'a, T> { impl<T: Hash> ObserverWithHashField for ValueObserver<'_, T> {
fn hash(&self) -> Option<u64> { fn hash(&self) -> Option<u64> {
Some(RandomState::with_seeds(1, 2, 3, 4).hash_one(self.value.as_ref())) Some(RandomState::with_seeds(1, 2, 3, 4).hash_one(self.value.as_ref()))
} }
@ -141,15 +141,15 @@ impl<'a, T> RefCellValueObserver<'a, T> {
} }
/// This *does not* reset the value inside the observer. /// This *does not* reset the value inside the observer.
impl<'a, I, S, T> Observer<I, S> for RefCellValueObserver<'a, T> {} impl<I, S, T> Observer<I, S> for RefCellValueObserver<'_, T> {}
impl<'a, T> Named for RefCellValueObserver<'a, T> { impl<T> Named for RefCellValueObserver<'_, T> {
fn name(&self) -> &Cow<'static, str> { fn name(&self) -> &Cow<'static, str> {
&self.name &self.name
} }
} }
impl<'a, T> ObserverWithHashField for RefCellValueObserver<'a, T> impl<T> ObserverWithHashField for RefCellValueObserver<'_, T>
where where
T: Hash, T: Hash,
{ {
@ -248,7 +248,7 @@ impl<'it, T: 'it> Iterator for RefCellValueObserverIterMut<'it, T> {
} }
} }
impl<'a, A: Hash> Hash for RefCellValueObserver<'a, A> { impl<A: Hash> Hash for RefCellValueObserver<'_, A> {
/// Panics if the contained value is already mutably borrowed (calls /// Panics if the contained value is already mutably borrowed (calls
/// [`RefCell::borrow`]). /// [`RefCell::borrow`]).
#[inline] #[inline]

View File

@ -110,8 +110,7 @@ pub struct CoverageAccountingScheduler<'a, CS, O> {
inner: IndexesLenTimeMinimizerScheduler<CS, O>, inner: IndexesLenTimeMinimizerScheduler<CS, O>,
} }
impl<'a, CS, O, S> Scheduler<<S::Corpus as Corpus>::Input, S> impl<CS, O, S> Scheduler<<S::Corpus as Corpus>::Input, S> for CoverageAccountingScheduler<'_, CS, O>
for CoverageAccountingScheduler<'a, CS, O>
where where
CS: Scheduler<<S::Corpus as Corpus>::Input, S>, CS: Scheduler<<S::Corpus as Corpus>::Input, S>,
S: HasCorpus + HasMetadata + HasRand, S: HasCorpus + HasMetadata + HasRand,

View File

@ -235,7 +235,7 @@ pub struct LoadConfig<'a, I, S, Z> {
} }
#[cfg(feature = "std")] #[cfg(feature = "std")]
impl<'a, I, S, Z> Debug for LoadConfig<'a, I, S, Z> { impl<I, S, Z> Debug for LoadConfig<'_, I, S, Z> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
write!(f, "LoadConfig {{}}") write!(f, "LoadConfig {{}}")
} }

View File

@ -120,66 +120,63 @@ llmp_debug = ["alloc", "std"]
llmp_small_maps = ["alloc"] llmp_small_maps = ["alloc"]
[build-dependencies] [build-dependencies]
rustversion = "1.0" rustversion = { workspace = true }
[dependencies] [dependencies]
libafl_derive = { version = "0.13.2", optional = true, path = "../libafl_derive" } libafl_derive = { version = "0.13.2", optional = true, path = "../libafl_derive" }
static_assertions = "1.1.0" static_assertions = "1.1.0"
tuple_list = { version = "0.1.3" } tuple_list = { version = "0.1.3" }
hashbrown = { version = "0.14", features = [ hashbrown = { workspace = true, features = [
"serde", "serde",
"ahash", "ahash",
], default-features = false, optional = true } # A faster hashmap, nostd compatible ], default-features = false, optional = true } # A faster hashmap, nostd compatible
xxhash-rust = { version = "0.8.5", features = [ xxhash-rust = { version = "0.8.12", features = [
"xxh3", "xxh3",
], optional = true } # xxh3 hashing for rust ], optional = true } # xxh3 hashing for rust
serde = { version = "1.0", default-features = false, features = [ serde = { workspace = true, default-features = false, features = [
"derive", "derive",
] } # serialization lib ] } # serialization lib
erased-serde = { version = "0.4.5", default-features = false, optional = true } # erased serde erased-serde = { version = "0.4.5", default-features = false, optional = true } # erased serde
postcard = { version = "1.0", features = [ postcard = { workspace = true, optional = true } # no_std compatible serde serialization format
"alloc", num_enum = { workspace = true, default-features = false }
], default-features = false, optional = true } # no_std compatible serde serialization format ahash = { workspace = true, optional = true } # The hash function already used in hashbrown
num_enum = { version = "0.7", default-features = false } backtrace = { workspace = true, default-features = true, optional = true } # Used to get the stacktrace in StacktraceObserver
ahash = { version = "0.8", default-features = false, optional = true } # The hash function already used in hashbrown
backtrace = { version = "0.3", optional = true } # Used to get the stacktrace in StacktraceObserver
ctor = { optional = true, version = "0.2" } ctor = { optional = true, version = "0.2.8" }
serde_json = { version = "1.0", optional = true, default-features = false, features = [ serde_json = { workspace = true, optional = true, default-features = false, features = [
"alloc", "alloc",
] } ] }
miniz_oxide = { version = "0.7.1", optional = true } miniz_oxide = { version = "0.8.0", optional = true }
hostname = { version = "0.4", optional = true } # Is there really no gethostname in the stdlib? hostname = { version = "0.4.0", optional = true } # Is there really no gethostname in the stdlib?
rand_core = { version = "0.6", optional = true } rand_core = { version = "0.6.4", optional = true }
nix = { version = "0.29", default-features = false, optional = true, features = [ nix = { workspace = true, optional = true, default-features = false, features = [
"signal", "signal",
"socket", "socket",
"poll", "poll",
] } ] }
uuid = { version = "1.4", optional = true, features = ["serde", "v4"] } uuid = { workspace = true, optional = true, features = ["serde", "v4"] }
clap = { version = "4.5", features = [ clap = { workspace = true, features = [
"derive", "derive",
"wrap_help", "wrap_help",
], optional = true } # CLI parsing, for libafl_bolts::cli / the `cli` feature ], optional = true } # CLI parsing, for libafl_bolts::cli / the `cli` feature
log = { version = "0.4" } log = { workspace = true }
pyo3 = { workspace = true, optional = true, features = ["serde", "macros"] }
pyo3 = { version = "0.22", optional = true, features = ["serde", "macros"] }
# optional-dev deps (change when target.'cfg(accessible(::std))'.test-dependencies will be stable) # optional-dev deps (change when target.'cfg(accessible(::std))'.test-dependencies will be stable)
serial_test = { version = "3", optional = true, default-features = false, features = [ serial_test = { workspace = true, optional = true, default-features = false, features = [
"logging", "logging",
] } ] }
# Document all features of this crate (for `cargo doc`) # Document all features of this crate (for `cargo doc`)
document-features = { version = "0.2", optional = true } document-features = { workspace = true, optional = true }
[target.'cfg(unix)'.dependencies] [target.'cfg(unix)'.dependencies]
libc = "0.2" # For (*nix) libc libc = { workspace = true } # For (*nix) libc
uds = { version = "0.4", optional = true, default-features = false } uds = { version = "0.4.2", optional = true, default-features = false }
[target.'cfg(windows)'.dependencies] [target.'cfg(windows)'.dependencies]
windows = { version = "0.51.1", features = [ windows = { workspace = true, features = [
"Win32_Foundation", "Win32_Foundation",
"Win32_System_Threading", "Win32_System_Threading",
"Win32_System_Diagnostics_Debug", "Win32_System_Diagnostics_Debug",
@ -189,9 +186,10 @@ windows = { version = "0.51.1", features = [
"Win32_System_SystemInformation", "Win32_System_SystemInformation",
"Win32_System_Console", "Win32_System_Console",
] } ] }
windows-result = "0.2.0"
[target.'cfg(windows)'.build-dependencies] [target.'cfg(windows)'.build-dependencies]
windows = "0.51.1" windows = { workspace = true }
[target.'cfg(target_vendor = "apple")'.dependencies] [target.'cfg(target_vendor = "apple")'.dependencies]
mach = "0.3.2" mach = "0.3.2"

Some files were not shown because too many files have changed in this diff Show More