diff options
| author | Sascha Cunz <Sascha@BabbelBox.org> | 2012-11-23 11:41:56 +0100 |
|---|---|---|
| committer | Sascha Cunz <Sascha@BabbelBox.org> | 2012-11-23 11:41:56 +0100 |
| commit | 9094d30b932ca4b47dba81e76011efe05455a44a (patch) | |
| tree | 117c53e9ad194d00274ad98e784318bd960c4053 /tests-clar/refs/branches | |
| parent | 5cf1b4f094eb6f724b27aa01d4f0481de2e673af (diff) | |
| download | libgit2-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/refs/branches')
| -rw-r--r-- | tests-clar/refs/branches/create.c | 4 | ||||
| -rw-r--r-- | tests-clar/refs/branches/delete.c | 3 | ||||
| -rw-r--r-- | tests-clar/refs/branches/foreach.c | 3 | ||||
| -rw-r--r-- | tests-clar/refs/branches/ishead.c | 3 | ||||
| -rw-r--r-- | tests-clar/refs/branches/lookup.c | 2 | ||||
| -rw-r--r-- | tests-clar/refs/branches/move.c | 2 | ||||
| -rw-r--r-- | tests-clar/refs/branches/tracking.c | 2 |
7 files changed, 19 insertions, 0 deletions
diff --git a/tests-clar/refs/branches/create.c b/tests-clar/refs/branches/create.c index 9026b0de1..5ecb42848 100644 --- a/tests-clar/refs/branches/create.c +++ b/tests-clar/refs/branches/create.c @@ -16,9 +16,13 @@ void test_refs_branches_create__initialize(void) void test_refs_branches_create__cleanup(void) { git_reference_free(branch); + branch = NULL; git_object_free(target); + target = NULL; + git_repository_free(repo); + repo = NULL; cl_fixture_cleanup("testrepo.git"); } diff --git a/tests-clar/refs/branches/delete.c b/tests-clar/refs/branches/delete.c index da7db13fc..75271a21c 100644 --- a/tests-clar/refs/branches/delete.c +++ b/tests-clar/refs/branches/delete.c @@ -20,7 +20,10 @@ void test_refs_branches_delete__initialize(void) void test_refs_branches_delete__cleanup(void) { git_reference_free(fake_remote); + fake_remote = NULL; + git_repository_free(repo); + repo = NULL; cl_fixture_cleanup("testrepo.git"); } diff --git a/tests-clar/refs/branches/foreach.c b/tests-clar/refs/branches/foreach.c index 92d5b1f65..dfa04395b 100644 --- a/tests-clar/refs/branches/foreach.c +++ b/tests-clar/refs/branches/foreach.c @@ -18,7 +18,10 @@ void test_refs_branches_foreach__initialize(void) void test_refs_branches_foreach__cleanup(void) { git_reference_free(fake_remote); + fake_remote = NULL; + git_repository_free(repo); + repo = NULL; cl_fixture_cleanup("testrepo.git"); } diff --git a/tests-clar/refs/branches/ishead.c b/tests-clar/refs/branches/ishead.c index 52a0a1941..2ab488f22 100644 --- a/tests-clar/refs/branches/ishead.c +++ b/tests-clar/refs/branches/ishead.c @@ -13,7 +13,10 @@ void test_refs_branches_ishead__initialize(void) void test_refs_branches_ishead__cleanup(void) { git_reference_free(branch); + branch = NULL; + git_repository_free(repo); + repo = NULL; } void test_refs_branches_ishead__can_tell_if_a_branch_is_pointed_at_by_HEAD(void) diff --git a/tests-clar/refs/branches/lookup.c b/tests-clar/refs/branches/lookup.c index 2aabf9889..d07ed0ed8 100644 --- a/tests-clar/refs/branches/lookup.c +++ b/tests-clar/refs/branches/lookup.c @@ -14,8 +14,10 @@ void test_refs_branches_lookup__initialize(void) void test_refs_branches_lookup__cleanup(void) { git_reference_free(branch); + branch = NULL; git_repository_free(repo); + repo = NULL; } void test_refs_branches_lookup__can_retrieve_a_local_branch(void) diff --git a/tests-clar/refs/branches/move.c b/tests-clar/refs/branches/move.c index 042469016..4bf1d69d0 100644 --- a/tests-clar/refs/branches/move.c +++ b/tests-clar/refs/branches/move.c @@ -15,6 +15,8 @@ void test_refs_branches_move__initialize(void) void test_refs_branches_move__cleanup(void) { git_reference_free(ref); + ref = NULL; + cl_git_sandbox_cleanup(); } diff --git a/tests-clar/refs/branches/tracking.c b/tests-clar/refs/branches/tracking.c index 9cf435e88..9378ecad5 100644 --- a/tests-clar/refs/branches/tracking.c +++ b/tests-clar/refs/branches/tracking.c @@ -14,8 +14,10 @@ void test_refs_branches_tracking__initialize(void) void test_refs_branches_tracking__cleanup(void) { git_reference_free(branch); + branch = NULL; git_repository_free(repo); + repo = NULL; } void test_refs_branches_tracking__can_retrieve_the_remote_tracking_reference_of_a_local_branch(void) |
