Re: [RFC PATCH v2] commit-graph: refactor to avoid prepare_repo_settings
- From
- Jonathan Tan <jonathantanmy@google.com>
- Date
- Jun 7, 2022, 20:02 UTC
- Message-ID
- <20220607200231.1958109-1-jonathantanmy@google.com>
- In-Reply-To
- <2c2bfc7b43c92dc7c0a4c47a2c88dadeb39c763b.1649486398.git.steadmon@google.com>
Josh Steadmon <steadmon@google.com> writes:
Show 18 quoted lines
> 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.