summaryrefslogtreecommitdiff
path: root/unpack-trees.c
diff options
context:
space:
mode:
authorFelipe Contreras <felipe.contreras@gmail.com>2013-08-13 20:27:58 +0200
committerJunio C Hamano <gitster@pobox.com>2013-08-13 14:37:30 -0700
commite28f7641592c5b907df2f084112fa22a31500810 (patch)
tree2d410f40aa2a1f95f83f168078d426fe64990ffc /unpack-trees.c
parent425df881e08bed7a8fcc9a23f452cff792f9ec6c (diff)
downloadgit-e28f7641592c5b907df2f084112fa22a31500810.tar.gz
unpack-trees: plug a memory leakfc/unpack-trees-leakfix
Before overwriting the destination index, first let's discard its contents. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Tested-by: Лежанкин Иван <abyss.7@gmail.com> wrote: Reviewed-by: René Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'unpack-trees.c')
-rw-r--r--unpack-trees.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/unpack-trees.c b/unpack-trees.c
index bf01717015..1a61e6f363 100644
--- a/unpack-trees.c
+++ b/unpack-trees.c
@@ -1154,8 +1154,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;
+ }
done:
clear_exclude_list(&el);