Very interesting, thanks!
It's seems like a great Idea to reuse libFuzzer, I just hope that the JNI overhead isn't too big.
Openjdk 16 has https://openjdk.java.net/jeps/389 But it's not obvious if it improve performance
Openjdk 16 has https://openjdk.java.net/jeps/389 But it's not obvious if it improve performance
Our coverage instrumentation does not rely on JNI calls, only the libFuzzer callbacks do, so the overhead shouldn't be too substantial. It's certainly not a proper benchmark, but one core on my laptop can fuzz the more non-trivial examples at around 10,000 exec/s. We are also working on some further performance improvements.