Cyan4973 / xxHash

Extremely fast non-cryptographic hash algorithm
http://www.xxhash.com/
Other
9.04k stars 771 forks source link

Integrate with google/oss-fuzz for continuous fuzz testing #907

Open silvergasp opened 9 months ago

silvergasp commented 9 months ago

Hey Yann,

I hope this message finds you well. I've been using xxHash without knowing it for some time as a third party dependency. I'd like to suggest and champion an effort to set up some basic fuzz-testing and combine it with google/oss-fuzz for continuous fuzzing. I'm fully aware that you are a busy person and I don't want to overload your review/maintenance capacity by introducing too many new ideas. Is this a bad time to discuss potential security/reliability improvements?

If your not familiar with fuzzing or google/oss-fuzz I've included a few brief notes below.

Benefits of Fuzz-Testing

Google/oss-fuzz for Continuous Fuzzing

I’d be more than happy to lead the effort in integrating fuzz testing with the xxHash and assist in any way required.

As a proof of concept I created a super simple fuzz harness in #906.

silvergasp commented 9 months ago

@Cyan4973 as you mentioned in https://github.com/Cyan4973/xxHash/pull/906#issuecomment-1869757890, there was interest in integrating with oss-fuzz, I've gone ahead and started the integration work in https://github.com/silvergasp/oss-fuzz/pull/11.

A couple of things (in order) I'll need to complete the integration;

I should also note, that there is an application process which I can complete on your behalf, as it'll just be a PR of work that I've mostly already done. I'm reasonably confident that this project would be accepted as it's quite a popular project, but there is a non-zero chance that it'll be rejected.

Cyan4973 commented 9 months ago

All green, let's start the process.

silvergasp commented 9 months ago

Easy, I've got the application process started here https://github.com/google/oss-fuzz/pull/11421, that'll also serve as the initial integration.

I'll be following in the next few days with some more complete fuzz harnesses, e.g. streaming mode etc.