projects/libdeflate: add OSS-Fuzz integration with 5 fuzz targets#15589
projects/libdeflate: add OSS-Fuzz integration with 5 fuzz targets#15589XananasX7 wants to merge 3 commits into
Conversation
…ecompression and compression libdeflate is a high-performance DEFLATE, zlib, and gzip compression and decompression library. It is widely used by tools including: - libpng (DEFLATE decompression path) - pigz, zopfli-based tools - many container image compression pipelines The library has its own libFuzzer harnesses under scripts/libFuzzer/ but has no OSS-Fuzz integration, meaning it is not continuously fuzzed against new engine improvements, sanitizer updates, or corpus sharing. This PR adds 5 fuzz targets: - deflate_decompress_fuzzer: fuzz raw DEFLATE decompression - gzip_decompress_fuzzer: fuzz gzip format decompression - zlib_decompress_fuzzer: fuzz zlib-format decompression - deflate_compress_fuzzer: fuzz compression + round-trip verify - checksum_fuzzer: fuzz adler32 and crc32 incremental update APIs The compress fuzzer does a round-trip (compress → decompress) to verify compressed output is always valid DEFLATE, catching compressor logic bugs. The checksum fuzzer exercises the incremental API split across two halves to catch off-by-one errors in multi-chunk processing.
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
|
XananasX7 is integrating a new project, but the |
|
Missing |
|
Thanks for the review and the reference to #15598! I've added the missing |
|
Thanks for the detailed feedback @DavidKorczynski — addressing all 5 points:
The remaining open PRs here cover genuinely new projects not yet in OSS-Fuzz. Happy to address any other issues on those. |
305d85f to
f68a8b7
Compare
|
Reauthored all commits with the correct email (mehdiananas007@gmail.com) matching the signed Google Individual CLA. The CLA bot should now verify successfully. |
Summary
libdeflate is a high-performance DEFLATE, zlib, and gzip compression/decompression library used widely in production tools and pipelines (pigz, many image processing pipelines, libpng, container compression tools).
The library ships its own libFuzzer harnesses under
scripts/libFuzzer/but has no OSS-Fuzz integration, so it is not continuously fuzzed with new sanitizer updates or shared corpus improvements.Fuzz targets added (5)
deflate_decompress_fuzzergzip_decompress_fuzzerzlib_decompress_fuzzerdeflate_compress_fuzzerchecksum_fuzzeradler32andcrc32incremental multi-chunk update APIsThe
deflate_compress_fuzzeris notable: it compresses the input, then decompresses the output and verifies correctness — catching compressor logic bugs that would produce invalid compressed data.Upstream acknowledgement
libdeflate ships its own harness stubs (MIT-licensed); these OSS-Fuzz harnesses are adapted from those stubs with improved buffer sizing to avoid false OOM exits on large inputs.
I have read the CLA Document and I hereby sign the CLA