git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] builtin-update-index.c (add_file_to_cache): Don't leak a cache entry.

From
Jim Meyering <jim@meyering.net>
Date
Feb 18, 2007, 09:10 UTC
Message-ID
<87bqjrvnk2.fsf@rho.meyering.net>
In-Reply-To
<Pine.LNX.4.64.0702160858190.20368@woody.linux-foundation.org>
Linus Torvalds <torvalds@linux-foundation.org> wrote:
Show 14 quoted lines
> 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.

Previous: Linus Torvalds
Message 3 of 3 in “builtin-update-index.c (add_file_to_cache): Don't leak a cache entry.”
  1. builtin-update-index.c (add_file_to_cache): Don't leak a cache entry.Jim Meyering, Feb 16, 2007
  2. Linus TorvaldsFeb 16, 2007
  3. Jim MeyeringFeb 18, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.