From 6713bfc70c4dc6da1fa4084f000b72f5d74fecfb Mon Sep 17 00:00:00 2001 From: Arthur Chan Date: Mon, 19 Sep 2022 14:36:54 +0000 Subject: fuzz: reorganise the path for existing oss-fuzz fuzzers In order to provide a better organisation for oss-fuzz fuzzers and to avoid top-level clustters in the git repository when more fuzzers are introduced, move the existing fuzzer-related sources to their own oss-fuzz/ hierarchy. Grouping the fuzzers into their own directory, separate their application on fuzz-testing from the core functionalities of the git code, prvides better and tidier structure the oss-fuzz fuzzing library to manage, locate, build and execute those fuzzers for fuzz-testing purposes in future development. Signed-off-by: Arthur Chan Signed-off-by: Junio C Hamano --- oss-fuzz/.gitignore | 3 +++ oss-fuzz/fuzz-commit-graph.c | 19 +++++++++++++++++++ oss-fuzz/fuzz-pack-headers.c | 14 ++++++++++++++ oss-fuzz/fuzz-pack-idx.c | 13 +++++++++++++ 4 files changed, 49 insertions(+) create mode 100644 oss-fuzz/.gitignore create mode 100644 oss-fuzz/fuzz-commit-graph.c create mode 100644 oss-fuzz/fuzz-pack-headers.c create mode 100644 oss-fuzz/fuzz-pack-idx.c (limited to 'oss-fuzz') diff --git a/oss-fuzz/.gitignore b/oss-fuzz/.gitignore new file mode 100644 index 0000000000..9acb74412e --- /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 0000000000..e7cf6d5b0f --- /dev/null +++ b/oss-fuzz/fuzz-commit-graph.c @@ -0,0 +1,19 @@ +#include "commit-graph.h" +#include "repository.h" + +struct commit_graph *parse_commit_graph(struct repository *r, + 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(); + g = parse_commit_graph(the_repository, (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 0000000000..99da1d0fd3 --- /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 0000000000..0c3d777aac --- /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; +} -- cgit v1.2.3