crepererum commented on issue #5332:
URL: https://github.com/apache/arrow-rs/issues/5332#issuecomment-1910035219

   Fuzzing is a good thing, even when you accept panics as an outcome. The 
fuzzer then has two wrap the method call accordingly.
   
   Regarding the toolchain: We should use `cargo-fuzz`. That gives us the 
option to use multiple fuzzers. Then you need to choose a fuzzer. I would 
suggest you use `libFuzzer` which comes w/ LLVM, since it is the least invasive 
one, however it has [entered maintenance 
mode](https://llvm.org/docs/LibFuzzer.html#id13). I see the following options:
   
   - don't care about maintainance mode and just use `libFuzzer`
   - use [`afl.rs`/`cargo afl`](https://github.com/rust-fuzz/afl.rs)[^afl]
   - use [`libAFL`](https://github.com/AFLplusplus/LibAFL) -- which is a modern 
Rust redesign of AFL(++) -- and also [provides a `libFuzzer` 
shim](https://github.com/AFLplusplus/LibAFL/pull/981)
   
   That said, the choice can easily be changed later, since the fuzzer is 
effectively just a "run some code on this blackbox `[u8]` input" (like "parse 
parquet from bytes").
   
   [^afl]: Note that AFL was abandoned for a while, but development is now open 
and active under the [AFL++ 
project](https://github.com/AFLplusplus/AFLplusplus).


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to