object: fix leak of shallow_stat
authorJosh Steadmon <steadmon@google.com>
Thu, 7 Feb 2019 20:05:54 +0000 (12:05 -0800)
committerJunio C Hamano <gitster@pobox.com>
Thu, 7 Feb 2019 21:02:28 +0000 (13:02 -0800)
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>
object.c
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);
 }