summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Josh Steadmon <steadmon@google.com>2019-02-07 12:05:54 -0800
committerLibravatar Junio C Hamano <gitster@pobox.com>2019-02-07 13:02:28 -0800
commit96b0710ee405bbdea404641c82eabf28fe629b7a (patch)
treeedd3c683726fd3539a3588d8903ddd71c30f7c41
parentfuzz-commit-graph: initialize repo object (diff)
downloadtgif-96b0710ee405bbdea404641c82eabf28fe629b7a.tar.xz
object: fix leak of shallow_stat
In eee4502baaf ("shallow: migrate shallow information into the object parser", 2018-05-17), we added a stat_validity pointer into the parsed_object_pool struct, but did not add code to free this in parsed_object_pool_clear(). This leak was found by fuzz-commit-graph. Clear the struct and then free it in parsed_object_pool_clear() to prevent the leak. Signed-off-by: Josh Steadmon <steadmon@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--object.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/object.c b/object.c
index 59ea24c4aa..e81d47a79c 100644
--- 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);
}