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]
