diff options
author | wilke <wilke.havinga@quintiq.com> | 2013-09-13 23:36:39 +0400 |
---|---|---|
committer | wilke <wilke.havinga@quintiq.com> | 2013-09-13 23:36:39 +0400 |
commit | d7fc2eb29b4574b96b190572470bfcb7dab9d078 (patch) | |
tree | 1f809b43b8855035f086d14a2349b76fdcfa9e61 /src/tree.c | |
parent | 4e01e3029b389dc45a040b794ceeeb0cbe32004a (diff) |
Fix memory leak in git_tree_walk on error or when stopping the walk from the supplied callback
Diffstat (limited to 'src/tree.c')
-rw-r--r-- | src/tree.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/tree.c b/src/tree.c index cd8adfb96..0bdf9a93e 100644 --- a/src/tree.c +++ b/src/tree.c @@ -907,11 +907,12 @@ static int tree_walk( return -1; error = tree_walk(subtree, callback, path, payload, preorder); + git_tree_free(subtree); + if (error != 0) break; git_buf_truncate(path, path_len); - git_tree_free(subtree); } if (!preorder && callback(path->ptr, entry, payload) < 0) { |