Tree
- Tree:
605afa171215de5095edbb98742404d3e486cc75
- Date:
- Message:
- Fuzzing: Build Fuzz Tests with Rust Extensions and Optional Features (#1358) Updates the OSS-Fuzz container environment & build script to build and install Dulwich with all optional features enabled and refines dictionary handling. ### Impact: - Increases the fuzz-able surface area of the most interesting (from a fuzzing & security testing perspective) Dulwich APIs, enabling future fuzz harnesses improvements to specifically target these features in tests. - Enhances flexibility of fuzzer seed data generation steps to improve dictionary quality and simplify seed corpus management for all fuzz targets. ### Key Changes in `build.sh`: - Unset problematic OSS-Fuzz provided `$RUSTFLAGS` to prevent build issues that inhibit PyO3 based Rust extension compilation. - Install Python dependencies with specific features (`fastimport`, `gpg`, `paramiko`, etc.). - Added "drop-in" support for inclusion of seed corpora zip files & LibFuzzer options files to be introduced later. ### Key Changes in `container-environment-bootstrap.sh`: - Installs dependencies required to build Dulwich's optional features and Rust extensions. - Updated Python dependencies (`setuptools`, `pyinstaller`, etc.) to the latest compatible versions. - Improved dictionary handling for fuzz targets by encapsulating dictionary generation logic in shell functions and adding default common dictionary entries to all fuzz target specific `.dict` files.