From 39b1ad7f15d19837b3a25690c796ac0a1ac2720e Mon Sep 17 00:00:00 2001 From: nulltoken Date: Tue, 5 Nov 2013 16:14:20 +0100 Subject: [PATCH] Plug configuration file search paths leaks --- src/fileops.c | 2 +- src/fileops.h | 5 +++++ tests-clar/repo/config.c | 8 ++++++++ tests-clar/repo/open.c | 2 ++ 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/fileops.c b/src/fileops.c index 1c27b277d..5763b370b 100644 --- a/src/fileops.c +++ b/src/fileops.c @@ -618,7 +618,7 @@ static git_futils_dirs_guess_cb git_futils__dir_guess[GIT_FUTILS_DIR__MAX] = { git_futils_guess_template_dirs, }; -static void git_futils_dirs_global_shutdown(void) +void git_futils_dirs_global_shutdown(void) { int i; for (i = 0; i < GIT_FUTILS_DIR__MAX; ++i) diff --git a/src/fileops.h b/src/fileops.h index 59a6a21a7..636c9b67d 100644 --- a/src/fileops.h +++ b/src/fileops.h @@ -399,4 +399,9 @@ extern int git_futils_filestamp_check( extern void git_futils_filestamp_set( git_futils_filestamp *tgt, const git_futils_filestamp *src); +/** + * Free the configuration file search paths. + */ +extern void git_futils_dirs_global_shutdown(void); + #endif /* INCLUDE_fileops_h__ */ diff --git a/tests-clar/repo/config.c b/tests-clar/repo/config.c index b8971bb6b..11abd42bc 100644 --- a/tests-clar/repo/config.c +++ b/tests-clar/repo/config.c @@ -46,6 +46,8 @@ void test_repo_config__open_missing_global(void) git_config_free(global); git_config_free(config); git_repository_free(repo); + + git_futils_dirs_global_shutdown(); } void test_repo_config__open_missing_global_with_separators(void) @@ -73,6 +75,8 @@ void test_repo_config__open_missing_global_with_separators(void) git_config_free(global); git_config_free(config); git_repository_free(repo); + + git_futils_dirs_global_shutdown(); } #include "repository.h" @@ -101,6 +105,8 @@ void test_repo_config__read_no_configs(void) cl_assert_equal_i(GIT_ABBREV_DEFAULT, val); git_repository_free(repo); + git_futils_dirs_global_shutdown(); + /* with just system */ cl_must_pass(p_mkdir("alternate/1", 0777)); @@ -197,4 +203,6 @@ void test_repo_config__read_no_configs(void) cl_assert(!git_path_exists("empty_standard_repo/.git/config")); cl_assert(!git_path_exists("alternate/3/.gitconfig")); + + git_futils_dirs_global_shutdown(); } diff --git a/tests-clar/repo/open.c b/tests-clar/repo/open.c index f386612a7..7cfe041c2 100644 --- a/tests-clar/repo/open.c +++ b/tests-clar/repo/open.c @@ -322,6 +322,8 @@ void test_repo_open__no_config(void) git_config_free(config); git_repository_free(repo); cl_fixture_cleanup("empty_standard_repo"); + + git_futils_dirs_global_shutdown(); } void test_repo_open__force_bare(void)