diff options
Diffstat (limited to 'oss-fuzz')
-rw-r--r-- | oss-fuzz/.gitignore | 3 | ||||
-rw-r--r-- | oss-fuzz/fuzz-commit-graph.c | 27 | ||||
-rw-r--r-- | oss-fuzz/fuzz-pack-headers.c | 14 | ||||
-rw-r--r-- | oss-fuzz/fuzz-pack-idx.c | 13 |
4 files changed, 57 insertions, 0 deletions
diff --git a/oss-fuzz/.gitignore b/oss-fuzz/.gitignore new file mode 100644 index 0000000..9acb744 --- /dev/null +++ b/oss-fuzz/.gitignore @@ -0,0 +1,3 @@ +fuzz-commit-graph +fuzz-pack-headers +fuzz-pack-idx 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; +} diff --git a/oss-fuzz/fuzz-pack-headers.c b/oss-fuzz/fuzz-pack-headers.c new file mode 100644 index 0000000..99da1d0 --- /dev/null +++ b/oss-fuzz/fuzz-pack-headers.c @@ -0,0 +1,14 @@ +#include "packfile.h" + +int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size); + +int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) +{ + enum object_type type; + unsigned long len; + + unpack_object_header_buffer((const unsigned char *)data, + (unsigned long)size, &type, &len); + + return 0; +} diff --git a/oss-fuzz/fuzz-pack-idx.c b/oss-fuzz/fuzz-pack-idx.c new file mode 100644 index 0000000..0c3d777 --- /dev/null +++ b/oss-fuzz/fuzz-pack-idx.c @@ -0,0 +1,13 @@ +#include "object-store.h" +#include "packfile.h" + +int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size); + +int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) +{ + struct packed_git p; + + load_idx("fuzz-input", GIT_SHA1_RAWSZ, (void *)data, size, &p); + + return 0; +} |