diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-09 13:34:27 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-09 13:34:27 +0000 |
commit | 4dbdc42d9e7c3968ff7f690d00680419c9b8cb0f (patch) | |
tree | 47c1d492e9c956c1cd2b74dbd3b9d8b0db44dc4e /oss-fuzz | |
parent | Initial commit. (diff) | |
download | git-4dbdc42d9e7c3968ff7f690d00680419c9b8cb0f.tar.xz git-4dbdc42d9e7c3968ff7f690d00680419c9b8cb0f.zip |
Adding upstream version 1:2.43.0.upstream/1%2.43.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'oss-fuzz')
-rw-r--r-- | oss-fuzz/.gitignore | 3 | ||||
-rw-r--r-- | oss-fuzz/fuzz-commit-graph.c | 28 | ||||
-rw-r--r-- | oss-fuzz/fuzz-pack-headers.c | 15 | ||||
-rw-r--r-- | oss-fuzz/fuzz-pack-idx.c | 14 |
4 files changed, 60 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..2992079 --- /dev/null +++ b/oss-fuzz/fuzz-commit-graph.c @@ -0,0 +1,28 @@ +#include "git-compat-util.h" +#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..150c0f5 --- /dev/null +++ b/oss-fuzz/fuzz-pack-headers.c @@ -0,0 +1,15 @@ +#include "git-compat-util.h" +#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..3e19021 --- /dev/null +++ b/oss-fuzz/fuzz-pack-idx.c @@ -0,0 +1,14 @@ +#include "git-compat-util.h" +#include "object-store-ll.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; +} |