summaryrefslogtreecommitdiff
path: root/tests-clar/object
diff options
context:
space:
mode:
authorSascha Cunz <Sascha@BabbelBox.org>2012-11-23 11:41:56 +0100
committerSascha Cunz <Sascha@BabbelBox.org>2012-11-23 11:41:56 +0100
commit9094d30b932ca4b47dba81e76011efe05455a44a (patch)
tree117c53e9ad194d00274ad98e784318bd960c4053 /tests-clar/object
parent5cf1b4f094eb6f724b27aa01d4f0481de2e673af (diff)
downloadlibgit2-9094d30b932ca4b47dba81e76011efe05455a44a.tar.gz
Reset all static variables to NULL in clar's __cleanup
Without this change, any failed assertion in the second (or a later) test inside a test suite has a chance of double deleting memory, resulting in a heap corruption. See #1096 for details. This leaves alone the test cases where we "just" use cl_git_sandbox_init() and cl_git_sandbox_cleanup(). These methods already take good care to not double delete a repository. Fixes #1096
Diffstat (limited to 'tests-clar/object')
-rw-r--r--tests-clar/object/commit/commitstagedfile.c2
-rw-r--r--tests-clar/object/lookup.c3
-rw-r--r--tests-clar/object/peel.c1
-rw-r--r--tests-clar/object/tag/peel.c5
-rw-r--r--tests-clar/object/tree/frompath.c3
5 files changed, 13 insertions, 1 deletions
diff --git a/tests-clar/object/commit/commitstagedfile.c b/tests-clar/object/commit/commitstagedfile.c
index eb78cedaa..6dc536e3a 100644
--- a/tests-clar/object/commit/commitstagedfile.c
+++ b/tests-clar/object/commit/commitstagedfile.c
@@ -13,6 +13,8 @@ void test_object_commit_commitstagedfile__initialize(void)
void test_object_commit_commitstagedfile__cleanup(void)
{
git_repository_free(repo);
+ repo = NULL;
+
cl_fixture_cleanup("treebuilder");
}
diff --git a/tests-clar/object/lookup.c b/tests-clar/object/lookup.c
index 7cbcc6140..01435bc04 100644
--- a/tests-clar/object/lookup.c
+++ b/tests-clar/object/lookup.c
@@ -11,7 +11,8 @@ void test_object_lookup__initialize(void)
void test_object_lookup__cleanup(void)
{
- git_repository_free(g_repo);
+ git_repository_free(g_repo);
+ g_repo = NULL;
}
void test_object_lookup__lookup_wrong_type_returns_enotfound(void)
diff --git a/tests-clar/object/peel.c b/tests-clar/object/peel.c
index f748be7f4..a19772858 100644
--- a/tests-clar/object/peel.c
+++ b/tests-clar/object/peel.c
@@ -10,6 +10,7 @@ void test_object_peel__initialize(void)
void test_object_peel__cleanup(void)
{
git_repository_free(g_repo);
+ g_repo = NULL;
}
static void assert_peel(
diff --git a/tests-clar/object/tag/peel.c b/tests-clar/object/tag/peel.c
index 97c5a7dd3..e2cd8d6a8 100644
--- a/tests-clar/object/tag/peel.c
+++ b/tests-clar/object/tag/peel.c
@@ -14,8 +14,13 @@ void test_object_tag_peel__initialize(void)
void test_object_tag_peel__cleanup(void)
{
git_tag_free(tag);
+ tag = NULL;
+
git_object_free(target);
+ target = NULL;
+
git_repository_free(repo);
+ repo = NULL;
cl_fixture_cleanup("testrepo.git");
}
diff --git a/tests-clar/object/tree/frompath.c b/tests-clar/object/tree/frompath.c
index fd425517c..86ca47e94 100644
--- a/tests-clar/object/tree/frompath.c
+++ b/tests-clar/object/tree/frompath.c
@@ -19,7 +19,10 @@ void test_object_tree_frompath__initialize(void)
void test_object_tree_frompath__cleanup(void)
{
git_tree_free(tree);
+ tree = NULL;
+
git_repository_free(repo);
+ repo = NULL;
}
static void assert_tree_from_path(