Re: [RFC PATCH v2] commit-graph: refactor to avoid prepare_repo_settings
From: Jonathan Tan <hidden>
Date: 2022-06-08 00:28:02
Josh Steadmon [off-list ref] writes:
quoted hunk ↗ jump to hunk
diff --git a/fuzz-commit-graph.c b/fuzz-commit-graph.c index e7cf6d5b0f..e53a2635f6 100644 --- a/fuzz-commit-graph.c +++ b/fuzz-commit-graph.c@@ -11,7 +11,13 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) struct commit_graph *g; initialize_the_repository(); - g = parse_commit_graph(the_repository, (void *)data, size); + /* + * Manually initialize commit-graph settings, to avoid the need to run + * in an actual repository. + */ + the_repository->settings.commit_graph_generation_version = 2; + the_repository->settings.commit_graph_read_changed_paths = 1; + g = parse_commit_graph_settings(&the_repository->settings, (void *)data, size); repo_clear(the_repository); free_commit_graph(g);
The comment doesn't explain why we need to avoid an actual repository. Maybe better: Initialize the commit-graph settings that would normally be read from the repository's gitdir. Other than that, this patch looks good to me. Isolating a part of the commit graph mechanism that can be fuzzed without access to the disk is, I think, a good idea, and this patch is a good way to do it.