From: Jim Meyering Date: Sun, 18 Feb 2007 09:10:21 GMT Subject: Re: [PATCH] builtin-update-index.c (add_file_to_cache): Don't leak a cache entry. Message-ID: <87bqjrvnk2.fsf@rho.meyering.net> In-Reply-To: Linus Torvalds wrote: > On Fri, 16 Feb 2007, Jim Meyering wrote: >> >> - 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.