Commit 966fb207021830819aad9fce098b4a63838def4d

Carlos Martín Nieto 2014-06-25T21:25:44

tree: free in error conditions As reported by coverity, we would leak some memory in error conditions.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
diff --git a/src/tree.c b/src/tree.c
index e0e2dbe..28190d6 100644
--- a/src/tree.c
+++ b/src/tree.c
@@ -466,6 +466,7 @@ static int append_entry(
 
 	git_strmap_insert(bld->map, entry->filename, entry, error);
 	if (error < 0) {
+		git_tree_entry_free(entry);
 		giterr_set(GITERR_TREE, "failed to append entry %s to the tree builder", filename);
 		return -1;
 	}
@@ -622,6 +623,7 @@ int git_treebuilder_create(git_treebuilder **builder_p, const git_tree *source)
 	GITERR_CHECK_ALLOC(bld);
 
 	if (git_strmap_alloc(&bld->map) < 0) {
+		git__free(bld);
 		return -1;
 	}