summaryrefslogtreecommitdiff
path: root/object.c
diff options
context:
space:
mode:
authorJosh Steadmon <steadmon@google.com>2019-02-07 20:05:54 (GMT)
committerJunio C Hamano <gitster@pobox.com>2019-02-07 21:02:28 (GMT)
commit96b0710ee405bbdea404641c82eabf28fe629b7a (patch)
treeedd3c683726fd3539a3588d8903ddd71c30f7c41 /object.c
parent249dc534449f6fabd65894f20ee079fd394ab832 (diff)
downloadgit-96b0710ee405bbdea404641c82eabf28fe629b7a.zip
git-96b0710ee405bbdea404641c82eabf28fe629b7a.tar.gz
git-96b0710ee405bbdea404641c82eabf28fe629b7a.tar.bz2
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>
Diffstat (limited to 'object.c')
-rw-r--r--object.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/object.c b/object.c
index 59ea24c..e81d47a 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);
}