Linus Torvalds [off-list ref] wrote:
On Fri, 16 Feb 2007, Jim Meyering wrote:
quoted
- if (index_path(ce->sha1, path, &st, !info_only))
+ if (index_path(ce->sha1, path, &st, !info_only)) {
+ free(ce);
return -1;
+ }
Well, the only user of this does:
if (add_file_to_cache(p))
die("Unable to process file %s", path);
so the leak is very shortlived ;)
True... for now, and probably for ever after, but what if? However,
the goal in plugging a leak like this is not to avoid wasting memory,
but rather to avoid spending time investigating it, again and again.
It's analogous to making your code compile warning-free. When a new
warning/leak pops up, it's easy to spot (in case it really does matter),
not obscured by lots of older ones.
There are other ways to mark a leak as ignorable, but this method works
across all leak-detecting tools.
If you'd prefer to avoid the cost of a technically-unnecessary free,
give it a different name, so it can be a no-op most of the time, and
"free" only when compiled in leak-checking mode.