From: Jeff King Date: Tue, 5 Sep 2017 13:04:10 +0000 (-0400) Subject: add: free leaked pathspec after add_files_to_cache() X-Git-Tag: v2.15.0-rc0~83^2~7 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/fe6a01af8aa913fc23c1486251da6f6f08601816?ds=sidebyside add: free leaked pathspec after add_files_to_cache() After run_diff_files, we throw away the rev_info struct, including the pathspec that we copied into it, leaking the memory. this is probably not a big deal in practice. We usually only run this once per process, and the leak is proportional to the pathspec list we're already holding in memory. But it's still a leak, and it pollutes leak-checker output, making it harder to find important leaks. Signed-off-by: Jeff King Signed-off-by: Junio C Hamano --- diff --git a/builtin/add.c b/builtin/add.c index c20548e4f5..ef625e3fb8 100644 --- a/builtin/add.c +++ b/builtin/add.c @@ -119,6 +119,7 @@ int add_files_to_cache(const char *prefix, rev.diffopt.flags |= DIFF_OPT_OVERRIDE_SUBMODULE_CONFIG; rev.max_count = 0; /* do not compare unmerged paths with stage #2 */ run_diff_files(&rev, DIFF_RACY_IS_MODIFIED); + clear_pathspec(&rev.prune_data); return !!data.add_errors; }