Skip to content

Commit

Permalink
Fix Improper Import Order Breaking fuzz_submodule Fuzzer
Browse files Browse the repository at this point in the history
ClusterFuzz runs of the `fuzz_submodule` target have been failing
because the `git` import was placed before the condition that sets the
Git executable path.

The order in which `git` is imported matters because it attempts to find
a Git executable as the import is loaded (via `refresh()` in
`git/__init__.py`.) As per gitpython-developers#1909, we configure the ClusterFuzz
environment to use a bundled Git executable via the env variable
condition in all fuzz targets.
  • Loading branch information
DaveLak committed Jun 4, 2024
1 parent e51bfdf commit 491e134
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion fuzzing/fuzz-targets/fuzz_submodule.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,13 @@
import tempfile
from configparser import ParsingError
from utils import is_expected_exception_message, get_max_filename_length
from git import Repo, GitCommandError, InvalidGitRepositoryError

if getattr(sys, "frozen", False) and hasattr(sys, "_MEIPASS"): # pragma: no cover
path_to_bundled_git_binary = os.path.abspath(os.path.join(os.path.dirname(__file__), "git"))
os.environ["GIT_PYTHON_GIT_EXECUTABLE"] = path_to_bundled_git_binary

from git import Repo, GitCommandError, InvalidGitRepositoryError

if not sys.warnoptions: # pragma: no cover
# The warnings filter below can be overridden by passing the -W option
# to the Python interpreter command line or setting the `PYTHONWARNINGS` environment variable.
Expand Down

0 comments on commit 491e134

Please sign in to comment.