summaryrefslogtreecommitdiff
path: root/src/tree.c
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@dwim.me>2014-06-25 21:25:44 +0200
committerCarlos Martín Nieto <cmn@dwim.me>2014-06-25 21:25:44 +0200
commit966fb207021830819aad9fce098b4a63838def4d (patch)
treed3cd8ff93ac56b53c73dd06ab21614e6f6b5b59c /src/tree.c
parent5e0f47c3753c5ddd206ab3af6d2a231ad3da39c4 (diff)
downloadlibgit2-966fb207021830819aad9fce098b4a63838def4d.tar.gz
tree: free in error conditions
As reported by coverity, we would leak some memory in error conditions.
Diffstat (limited to 'src/tree.c')
-rw-r--r--src/tree.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/tree.c b/src/tree.c
index e0e2dbebf..28190d6da 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;
}