Fix Fuzzer Crash in ClusterFuzz Due to Missing Git Executable by DaveLak · Pull Request #1906 · gitpython-developers/GitPython (original) (raw)

A Git executable is not globally available in the ClusterFuzz container
environment where OSS-Fuzz executes fuzz tests, causing an error in the fuzz
harnesses when GitPython attempts to initialize, crashing the tests before they
can run.

To avoid this issue, we bundle the git binary that is available in the OSS-Fuzz
build container with the fuzz harness via Pyinstaller's --add-binary flag in
build.sh and use GitPython's git.refresh(<full-path-to-git-executable>)
method inside a Pyinstaller runtime check to initialize GitPython with the
bundled Git executable when running from the bundled application.

In all other execution environments, we assume a git executable is available
globally.

Fixes: