diff options
m--------- | custom_mutators/grammar_mutator/grammar_mutator | 0 | ||||
-rw-r--r-- | custom_mutators/rust/custom_mutator/src/lib.rs | 42 | ||||
m--------- | qemu_mode/qemuafl | 0 | ||||
m--------- | unicorn_mode/unicornafl | 0 |
4 files changed, 23 insertions, 19 deletions
diff --git a/custom_mutators/grammar_mutator/grammar_mutator b/custom_mutators/grammar_mutator/grammar_mutator -Subproject b79d51a8daccbd7a693f9b6765c81ead14f28e2 +Subproject b3c4fcfa6ae28918bc410f7747135eafd4fb726 diff --git a/custom_mutators/rust/custom_mutator/src/lib.rs b/custom_mutators/rust/custom_mutator/src/lib.rs index 39c2b453..013d3769 100644 --- a/custom_mutators/rust/custom_mutator/src/lib.rs +++ b/custom_mutators/rust/custom_mutator/src/lib.rs @@ -226,6 +226,10 @@ pub mod wrappers { } /// Internal function used in the macro + /// + /// # Safety + /// Dereferences the passed-in pointers up to `buf_size` bytes. + /// Should not be called directly. pub unsafe fn afl_custom_fuzz_count_<M: RawCustomMutator>( data: *mut c_void, buf: *const u8, @@ -278,6 +282,10 @@ pub mod wrappers { } /// Internal function used in the macro + /// + /// # Safety + /// May dereference the passed-in `data` pointer. + /// Should not be called directly. pub unsafe fn afl_custom_deinit_<M: RawCustomMutator>(data: *mut c_void) { match catch_unwind(|| { // drop the context @@ -392,18 +400,16 @@ macro_rules! export_mutator { } #[no_mangle] - pub extern "C" fn afl_custom_fuzz_count( + pub unsafe extern "C" fn afl_custom_fuzz_count( data: *mut ::std::os::raw::c_void, buf: *const u8, buf_size: usize, ) -> u32 { - unsafe { - $crate::wrappers::afl_custom_fuzz_count_::<$mutator_type>(data, buf, buf_size) - } + $crate::wrappers::afl_custom_fuzz_count_::<$mutator_type>(data, buf, buf_size) } #[no_mangle] - pub extern "C" fn afl_custom_fuzz( + pub unsafe extern "C" fn afl_custom_fuzz( data: *mut ::std::os::raw::c_void, buf: *mut u8, buf_size: usize, @@ -412,17 +418,15 @@ macro_rules! export_mutator { add_buf_size: usize, max_size: usize, ) -> usize { - unsafe { - $crate::wrappers::afl_custom_fuzz_::<$mutator_type>( - data, - buf, - buf_size, - out_buf, - add_buf, - add_buf_size, - max_size, - ) - } + $crate::wrappers::afl_custom_fuzz_::<$mutator_type>( + data, + buf, + buf_size, + out_buf, + add_buf, + add_buf_size, + max_size, + ) } #[no_mangle] @@ -430,7 +434,7 @@ macro_rules! export_mutator { data: *mut ::std::os::raw::c_void, filename_new_queue: *const ::std::os::raw::c_char, filename_orig_queue: *const ::std::os::raw::c_char, - ) { + ) -> bool { $crate::wrappers::afl_custom_queue_new_entry_::<$mutator_type>( data, filename_new_queue, @@ -462,8 +466,8 @@ macro_rules! export_mutator { } #[no_mangle] - pub extern "C" fn afl_custom_deinit(data: *mut ::std::os::raw::c_void) { - unsafe { $crate::wrappers::afl_custom_deinit_::<$mutator_type>(data) } + pub unsafe extern "C" fn afl_custom_deinit(data: *mut ::std::os::raw::c_void) { + $crate::wrappers::afl_custom_deinit_::<$mutator_type>(data) } }; } diff --git a/qemu_mode/qemuafl b/qemu_mode/qemuafl -Subproject a6758d1cc3e4dde88fca3f0b3a903581b7c8b2e +Subproject 21ff34383764a8c6f66509b3b8d5282468c721e diff --git a/unicorn_mode/unicornafl b/unicorn_mode/unicornafl -Subproject 019b871539fe9ed3f41d882385a8b02c243d49a +Subproject 0d82727f2b477de82fa355edef9bc158bd25d37 |