Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/libgit2.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornulltoken <emeric.fermas@gmail.com>2013-11-19 16:15:47 +0400
committernulltoken <emeric.fermas@gmail.com>2013-11-19 16:25:37 +0400
commit3d5233455b2483fe78c82cabf89b568d079d6742 (patch)
tree8d85f0e34d9a842a7c9643d17c20009f149e8036 /src/tree-cache.c
parent82e6a42c6c387a584df1b2efb4fa3bfdb8c290a2 (diff)
tree-cache: Don't segfault upon corruption
Diffstat (limited to 'src/tree-cache.c')
-rw-r--r--src/tree-cache.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/tree-cache.c b/src/tree-cache.c
index a693f4f30..57cc2946f 100644
--- a/src/tree-cache.c
+++ b/src/tree-cache.c
@@ -178,9 +178,12 @@ void git_tree_cache_free(git_tree_cache *tree)
if (tree == NULL)
return;
- for (i = 0; i < tree->children_count; ++i)
- git_tree_cache_free(tree->children[i]);
+ if (tree->children != NULL) {
+ for (i = 0; i < tree->children_count; ++i)
+ git_tree_cache_free(tree->children[i]);
+
+ git__free(tree->children);
+ }
- git__free(tree->children);
git__free(tree);
}