diff --git a/fuzzers/frida_libpng/src/fuzzer.rs b/fuzzers/frida_libpng/src/fuzzer.rs index 295a552f19..a5bb93a431 100644 --- a/fuzzers/frida_libpng/src/fuzzer.rs +++ b/fuzzers/frida_libpng/src/fuzzer.rs @@ -91,7 +91,7 @@ unsafe fn fuzz(options: FuzzerOptions) -> Result<(), Error> { (|state: Option>, mut mgr: LlmpRestartingEventManager<_, _, _, _>, _core_id| { - let gum = unsafe { Gum::obtain() }; + let gum = Gum::obtain(); let coverage = CoverageRuntime::new(); #[cfg(unix)] @@ -105,13 +105,11 @@ unsafe fn fuzz(options: FuzzerOptions) -> Result<(), Error> { FridaInstrumentationHelper::new(&gum, &options, tuple_list!(coverage)); // Create an observation channel using the coverage map - let edges_observer = HitcountsMapObserver::new(unsafe { - StdMapObserver::new_from_ptr( - "edges", - frida_helper.map_ptr_mut().unwrap(), - MAP_SIZE, - ) - }); + let edges_observer = HitcountsMapObserver::new(StdMapObserver::new_from_ptr( + "edges", + frida_helper.map_ptr_mut().unwrap(), + MAP_SIZE, + )); // Create an observation channel to keep track of the execution time let time_observer = TimeObserver::new("time"); @@ -183,7 +181,7 @@ unsafe fn fuzz(options: FuzzerOptions) -> Result<(), Error> { let observers = tuple_list!( edges_observer, time_observer, - AsanErrorsObserver::new(unsafe { &ASAN_ERRORS }) + AsanErrorsObserver::new(&ASAN_ERRORS) ); #[cfg(windows)] let observers = tuple_list!(edges_observer, time_observer); @@ -221,7 +219,7 @@ unsafe fn fuzz(options: FuzzerOptions) -> Result<(), Error> { (|state: Option>, mut mgr: LlmpRestartingEventManager<_, _, _, _>, _core_id| { - let gum = unsafe { Gum::obtain() }; + let gum = Gum::obtain(); let coverage = CoverageRuntime::new(); let cmplog = CmpLogRuntime::new(); @@ -230,13 +228,11 @@ unsafe fn fuzz(options: FuzzerOptions) -> Result<(), Error> { FridaInstrumentationHelper::new(&gum, &options, tuple_list!(coverage, cmplog)); // Create an observation channel using the coverage map - let edges_observer = HitcountsMapObserver::new(unsafe { - StdMapObserver::new_from_ptr( - "edges", - frida_helper.map_ptr_mut().unwrap(), - MAP_SIZE, - ) - }); + let edges_observer = HitcountsMapObserver::new(StdMapObserver::new_from_ptr( + "edges", + frida_helper.map_ptr_mut().unwrap(), + MAP_SIZE, + )); // Create an observation channel to keep track of the execution time let time_observer = TimeObserver::new("time"); @@ -301,7 +297,7 @@ unsafe fn fuzz(options: FuzzerOptions) -> Result<(), Error> { let observers = tuple_list!( edges_observer, time_observer, - AsanErrorsObserver::new(unsafe { &ASAN_ERRORS }) + AsanErrorsObserver::new(&ASAN_ERRORS) ); #[cfg(windows)] let observers = tuple_list!(edges_observer, time_observer,); @@ -330,8 +326,7 @@ unsafe fn fuzz(options: FuzzerOptions) -> Result<(), Error> { } // Create an observation channel using cmplog map - let cmplog_observer = - CmpLogObserver::new("cmplog", unsafe { &mut CMPLOG_MAP }, true); + let cmplog_observer = CmpLogObserver::new("cmplog", &mut CMPLOG_MAP, true); let mut executor = ShadowExecutor::new(executor, tuple_list!(cmplog_observer)); @@ -356,7 +351,7 @@ unsafe fn fuzz(options: FuzzerOptions) -> Result<(), Error> { (|state: Option>, mut mgr: LlmpRestartingEventManager<_, _, _, _>, _core_id| { - let gum = unsafe { Gum::obtain() }; + let gum = Gum::obtain(); let coverage = CoverageRuntime::new(); @@ -364,13 +359,11 @@ unsafe fn fuzz(options: FuzzerOptions) -> Result<(), Error> { FridaInstrumentationHelper::new(&gum, &options, tuple_list!(coverage)); // Create an observation channel using the coverage map - let edges_observer = HitcountsMapObserver::new(unsafe { - StdMapObserver::new_from_ptr( - "edges", - frida_helper.map_ptr_mut().unwrap(), - MAP_SIZE, - ) - }); + let edges_observer = HitcountsMapObserver::new(StdMapObserver::new_from_ptr( + "edges", + frida_helper.map_ptr_mut().unwrap(), + MAP_SIZE, + )); // Create an observation channel to keep track of the execution time let time_observer = TimeObserver::new("time"); @@ -435,7 +428,7 @@ unsafe fn fuzz(options: FuzzerOptions) -> Result<(), Error> { let observers = tuple_list!( edges_observer, time_observer, - AsanErrorsObserver::new(unsafe { &ASAN_ERRORS }) + AsanErrorsObserver::new(&ASAN_ERRORS) ); #[cfg(windows)] let observers = tuple_list!(edges_observer, time_observer,); diff --git a/libafl/src/bolts/cli.rs b/libafl/src/bolts/cli.rs index e5f89f43d2..55081e62b4 100644 --- a/libafl/src/bolts/cli.rs +++ b/libafl/src/bolts/cli.rs @@ -63,7 +63,7 @@ //! } //!``` -use clap::{App, AppSettings, IntoApp, Parser}; +use clap::{Command, CommandFactory, Parser}; use serde::{Deserialize, Serialize}; #[cfg(feature = "frida_cli")] use std::error; @@ -105,9 +105,9 @@ fn parse_instrumentation_location( /// Top-level container for cli options/arguments/subcommands #[derive(Parser, Clone, Debug, Serialize, Deserialize)] #[clap( - setting(AppSettings::ArgRequiredElseHelp), - setting(AppSettings::SubcommandPrecedenceOverArg), - setting(AppSettings::ArgsNegateSubcommands) + arg_required_else_help(true), + subcommand_precedence_over_arg(true), + args_conflicts_with_subcommands(true) )] #[allow(clippy::struct_excessive_bools)] pub struct FuzzerOptions { @@ -347,9 +347,9 @@ impl FuzzerOptions { /// } /// ``` #[must_use] - pub fn with_subcommand(mode: App) -> App { - let app: App = Self::into_app(); - app.subcommand(mode) + pub fn with_subcommand(mode: Command) -> Command { + let command: Command = Self::command(); + command.subcommand(mode) } } diff --git a/libafl_frida/src/asan/asan_rt.rs b/libafl_frida/src/asan/asan_rt.rs index fcd54f2425..467823768e 100644 --- a/libafl_frida/src/asan/asan_rt.rs +++ b/libafl_frida/src/asan/asan_rt.rs @@ -67,7 +67,6 @@ extern "C" { fn __register_frame(begin: *mut c_void); } -/// Get the current thread's TLS address extern "C" { fn tls_ptr() -> *const c_void; }