[zlib] Add streaming inflate fuzzer
This adds a new fuzzer which first deflates and then inflates some data one chunk at a time and verifies that it round-trips correctly. It's targeted at the recent bug where inffast_chunk was called with overlapping from and out buffers. I've verified that the fuzzer detects the incorrect inflate results when using Clang's -basic-aa-recphi option before the bug fix in e0f88a9. Furthermore, this patch adds asserts in inffast_chunk and other functions that verify there's no overlap of restrict-qualified buffers. (I've checked that the fuzzer hits the inffast_chunk assert before e0f88a9). To make those asserts work, this changes the build config to define ZLIB_DEBUG in debug and fuzzer builds. Bug: 1103818, 708726 Change-Id: Ia3d5e7906b8b1a65d56a589d8a81d17661e638c2 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2332705 Commit-Queue: Hans Wennborg <hans@chromium.org> Reviewed-by: Nico Weber <thakis@chromium.org> Reviewed-by: Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#794482} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 3eda17e22e6a3c4e44fdfa778b7d55f0a7c82e75
Loading
Please register or sign in to comment