1+ use std:: path:: PathBuf ;
12#[ cfg( windows) ]
23use std:: ptr:: write_volatile;
3- use std:: { path:: PathBuf , ptr:: write} ;
44
55#[ cfg( feature = "tui" ) ]
66use libafl:: monitors:: tui:: TuiMonitor ;
@@ -15,25 +15,24 @@ use libafl::{
1515 fuzzer:: { Fuzzer , StdFuzzer } ,
1616 inputs:: { BytesInput , HasTargetBytes , MultipartInput } ,
1717 mutators:: { havoc_mutations:: havoc_mutations, scheduled:: StdScheduledMutator } ,
18- observers:: StdMapObserver ,
18+ observers:: ConstMapObserver ,
1919 schedulers:: QueueScheduler ,
2020 stages:: mutational:: StdMutationalStage ,
2121 state:: StdState ,
2222 Evaluator ,
2323} ;
24- use libafl_bolts:: { rands:: StdRand , tuples:: tuple_list, AsSlice } ;
24+ use libafl_bolts:: { nonnull_raw_mut , rands:: StdRand , tuples:: tuple_list, AsSlice } ;
2525
2626/// Coverage map with explicit assignments due to the lack of instrumentation
2727static mut SIGNALS : [ u8 ; 128 ] = [ 0 ; 128 ] ;
28- static mut SIGNALS_PTR : * mut u8 = unsafe { SIGNALS . as_mut_ptr ( ) } ;
28+ static mut SIGNALS_PTR : * mut [ u8 ; 128 ] = & raw mut SIGNALS ;
2929
3030/// "Coverage" map for count, just to help things along
3131static mut LAST_COUNT : [ usize ; 1 ] = [ usize:: MAX ] ;
32- static mut LAST_COUNT_PTR : * mut usize = unsafe { LAST_COUNT . as_mut_ptr ( ) } ;
3332
3433/// Assign a signal to the signals map
3534fn signals_set ( idx : usize ) {
36- unsafe { write ( SIGNALS_PTR . add ( idx ) , 1 ) } ;
35+ unsafe { ( * SIGNALS_PTR ) [ idx ] = 1 } ;
3736}
3837
3938/// Assign a count to the count "map"
@@ -83,9 +82,9 @@ pub fn main() {
8382
8483 // Create an observation channel using the signals map
8584 let signals_observer =
86- unsafe { StdMapObserver :: from_mut_ptr ( "signals" , SIGNALS_PTR , SIGNALS . len ( ) ) } ;
85+ unsafe { ConstMapObserver :: from_mut_ptr ( "signals" , nonnull_raw_mut ! ( SIGNALS ) ) } ;
8786 let mut count_observer =
88- unsafe { StdMapObserver :: from_mut_ptr ( "count" , LAST_COUNT_PTR , LAST_COUNT . len ( ) ) } ;
87+ unsafe { ConstMapObserver :: from_mut_ptr ( "count" , nonnull_raw_mut ! ( LAST_COUNT ) ) } ;
8988 * count_observer. initial_mut ( ) = usize:: MAX ; // we are minimising!
9089
9190 // Feedback to rate the interestingness of an input
0 commit comments