[PATCH 1/3] dir: fix leak of parent_hashmap and recursive_hashmap
- From
Elijah Newren via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Aug 16, 2020, 06:59 UTC
- Message-ID
- <932741d7598ca2934dbca40f715ba2d3819fcc51.1597561152.git.gitgitgadget@gmail.com>
- In-Reply-To
- <pull.831.git.git.1597561152.gitgitgadget@gmail.com>
From: Elijah Newren <newren@gmail.com>
Commit 96cc8ab531 ("sparse-checkout: use hashmaps for cone patterns", 2019-11-21) added a parent_hashmap and recursive_hashmap to each struct pattern_list and initialized these in add_patterns_from_buffer() but did not make sure to add necessary code to clear_pattern_list() to free these new structures. Call hashmap_free_() on each to plug this memory leak.
Signed-off-by: Elijah Newren <newren@gmail.com> --- dir.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/dir.c b/dir.c index fe64be30ed..08df469bf7 100644 --- a/dir.c +++ b/dir.c @@ -916,6 +916,10 @@ void clear_pattern_list(struct pattern_list *pl) free(pl->patterns[i]); free(pl->patterns); free(pl->filebuf); + hashmap_free_(&pl->parent_hashmap, + offsetof(struct pattern_entry, ent)); + hashmap_free_(&pl->recursive_hashmap, + offsetof(struct pattern_entry, ent)); memset(pl, 0, sizeof(*pl)); }
-- gitgitgadget