Merge branch 'js/fuzz-commit-graph-update'
authorJunio C Hamano <gitster@pobox.com>
Sat, 9 Feb 2019 04:44:53 +0000 (20:44 -0800)
committerJunio C Hamano <gitster@pobox.com>
Sat, 9 Feb 2019 04:44:53 +0000 (20:44 -0800)
Update to the fuzzer.

* js/fuzz-commit-graph-update:
object: fix leak of shallow_stat
fuzz-commit-graph: initialize repo object

fuzz-commit-graph.c
object.c
index cf790c9d04ca4d3941ed94316b537b5739eba5ed..0157acbf2e0554aaa7b3b6750a4d2bdc1ff89abd 100644 (file)
@@ -1,4 +1,5 @@
 #include "commit-graph.h"
+#include "repository.h"
 
 struct commit_graph *parse_commit_graph(void *graph_map, int fd,
                                        size_t graph_size);
@@ -9,7 +10,9 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
 {
        struct commit_graph *g;
 
+       initialize_the_repository();
        g = parse_commit_graph((void *)data, -1, size);
+       repo_clear(the_repository);
        free(g);
 
        return 0;
index 59ea24c4aab6e58ac64ef55598182da460acd6ad..e81d47a79cd6eb42fae7c104be0e9ac1e5173e79 100644 (file)
--- a/object.c
+++ b/object.c
@@ -557,9 +557,11 @@ void parsed_object_pool_clear(struct parsed_object_pool *o)
        clear_alloc_state(o->commit_state);
        clear_alloc_state(o->tag_state);
        clear_alloc_state(o->object_state);
+       stat_validity_clear(o->shallow_stat);
        FREE_AND_NULL(o->blob_state);
        FREE_AND_NULL(o->tree_state);
        FREE_AND_NULL(o->commit_state);
        FREE_AND_NULL(o->tag_state);
        FREE_AND_NULL(o->object_state);
+       FREE_AND_NULL(o->shallow_stat);
 }