Skip to content

Commit 7b684cd

Browse files
committed
Add graceful handling of expected exceptions in fuzz_submodule.py
Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=69350 **`IsADirectoryError`** Fuzzer provided input data can sometimes produce filenames that look like directories and raise `IsADirectoryError` exceptions which crash the fuzzer. This commit catches those cases and returns -1 to instruct libfuzzer that the inputs are not valuable to add to the corpus. **`FileExistsError`** Similar to the above, this is a possible exception case produced by the fuzzed data and not a bug so its handled the same.
1 parent 2345c1a commit 7b684cd

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

Diff for: fuzzing/fuzz-targets/fuzz_submodule.py

+9-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,15 @@ def TestOneInput(data):
6767
)
6868
repo.index.commit(f"Removed submodule {submodule_name}")
6969

70-
except (ParsingError, GitCommandError, InvalidGitRepositoryError, FileNotFoundError, BrokenPipeError):
70+
except (
71+
ParsingError,
72+
GitCommandError,
73+
InvalidGitRepositoryError,
74+
FileNotFoundError,
75+
FileExistsError,
76+
IsADirectoryError,
77+
BrokenPipeError,
78+
):
7179
return -1
7280
except (ValueError, OSError) as e:
7381
expected_messages = [

0 commit comments

Comments
 (0)