aboutsummaryrefslogtreecommitdiffstats
path: root/oss-fuzz/fuzz-commit-graph.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2022-10-07 17:19:59 -0700
committerJunio C Hamano <gitster@pobox.com>2022-10-07 17:19:59 -0700
commit9b89c08caed7b943cf2c758a9c58cd3cbd9f8c64 (patch)
tree9826d9a0afc15322123e47a48aa13d118c1397b2 /oss-fuzz/fuzz-commit-graph.c
parentMerge branch 'vd/fix-unaligned-read-index-v4' (diff)
parentfuzz: reorganise the path for existing oss-fuzz fuzzers (diff)
downloadgit-9b89c08caed7b943cf2c758a9c58cd3cbd9f8c64.tar.gz
git-9b89c08caed7b943cf2c758a9c58cd3cbd9f8c64.zip
Merge branch 'ac/fuzzers'
Source file shuffling. * ac/fuzzers: fuzz: reorganise the path for existing oss-fuzz fuzzers
Diffstat (limited to 'oss-fuzz/fuzz-commit-graph.c')
-rw-r--r--oss-fuzz/fuzz-commit-graph.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/oss-fuzz/fuzz-commit-graph.c b/oss-fuzz/fuzz-commit-graph.c
new file mode 100644
index 0000000000..914026f5d8
--- /dev/null
+++ b/oss-fuzz/fuzz-commit-graph.c
@@ -0,0 +1,27 @@
+#include "commit-graph.h"
+#include "repository.h"
+
+struct commit_graph *parse_commit_graph(struct repo_settings *s,
+ void *graph_map, size_t graph_size);
+
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size);
+
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+{
+ struct commit_graph *g;
+
+ initialize_the_repository();
+ /*
+ * Initialize the_repository with commit-graph settings that would
+ * normally be read from the repository's gitdir. We want to avoid
+ * touching the disk to keep the individual fuzz-test cases as fast as
+ * possible.
+ */
+ the_repository->settings.commit_graph_generation_version = 2;
+ the_repository->settings.commit_graph_read_changed_paths = 1;
+ g = parse_commit_graph(&the_repository->settings, (void *)data, size);
+ repo_clear(the_repository);
+ free_commit_graph(g);
+
+ return 0;
+}