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

Re: [PATCH 3/4] unpack-trees: plug a memory leak

From
Junio C Hamano <gitster@pobox.com>
Date
Jun 2, 2013, 19:33 UTC
Message-ID
<7vfvx0nw7t.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1369915136-4248-4-git-send-email-felipe.contreras@gmail.com>
Felipe Contreras <felipe.contreras@gmail.com> writes:
Show 21 quoted lines
> Before overwriting the destination index, first let's discard it's
> contents.
>
> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
> ---
>  unpack-trees.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/unpack-trees.c b/unpack-trees.c
> index ede4299..eff2944 100644
> --- a/unpack-trees.c
> +++ b/unpack-trees.c
> @@ -1146,8 +1146,10 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
>  
>  	o->src_index = NULL;
>  	ret = check_updates(o) ? (-2) : 0;
> -	if (o->dst_index)
> +	if (o->dst_index) {
> +		discard_index(o->dst_index);
>  		*o->dst_index = o->result;
> +	}

I seem to recall that many callers set src_index and dst_index to the same istate, and expect that the original istate pointed by the src_index to remain usable. Is it safe to discard it like this at this point?

>  
>  done:
>  	clear_exclude_list(&el);
Previous: Felipe ContrerasNext: Felipe Contreras
Message 12 of 16 in “cherry-pick: fix memory leaks”
  1. 0/4 cherry-pick: fix memory leaksFelipe Contreras, May 30, 2013
  2. 1/4 commit: reload cache properlyFelipe Contreras, May 30, 2013
  3. Thomas RastMay 30, 2013
  4. Felipe ContrerasMay 30, 2013
  5. Thomas RastMay 30, 2013
  6. Felipe ContrerasMay 30, 2013
  7. Duy NguyenJun 1, 2013
  8. Test 'commit --only' after 'checkout --orphan'Thomas Rast, Jun 1, 2013
  9. Duy NguyenMay 30, 2013
  10. 2/4 read-cache: plug small memory leakFelipe Contreras, May 30, 2013
  11. 3/4 unpack-trees: plug a memory leakFelipe Contreras, May 30, 2013
  12. Junio C HamanoJun 2, 2013
  13. Felipe ContrerasJun 2, 2013
  14. Junio C HamanoJun 2, 2013
  15. Felipe ContrerasJun 2, 2013
  16. 4/4 unpack-trees: free created cache entriesFelipe Contreras, May 30, 2013

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.