summaryrefslogtreecommitdiffstats
path: root/oss-fuzz/fuzz-commit-graph.c
diff options
context:
space:
mode:
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 0000000..914026f
--- /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;
+}