trailofbits / ruzzy

A coverage-guided fuzzer for pure Ruby code and Ruby C extensions
GNU Affero General Public License v3.0
78 stars 5 forks source link

Fix #14, support for Ruby back to 3.0.0 #15

Closed mschwager closed 6 months ago

mschwager commented 6 months ago

I tested this by changing the Dockerfile to use ubuntu:22.04 and running the example harness and confirming that coverage still works (it finds the crash). Ubuntu 22.04 currently uses clang 14.0.0, so we're able to say we've tested clang back a bit further now.

Originally I chose calling setup instead of start because I thought the performance characteristics would be better. setup appears to configure, but not fully enable coverage gathering, whereas start does both. Since Ruzzy doesn't need the builtin coverage information (we're adding our own hook), I thought performance would be better without the unnecessary builtin coverage hooks. But, you know what they say: make it work, make it correct, make it fast. I also didn't have any benchmarks to confirm this hypothesis, so who knows how this actually affected performance 🤷