summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornulltoken <emeric.fermas@gmail.com>2013-11-05 16:14:20 +0100
committernulltoken <emeric.fermas@gmail.com>2013-11-05 17:36:12 +0100
commit39b1ad7f15d19837b3a25690c796ac0a1ac2720e (patch)
tree4f9032e90992bcc61034dad5bf3f5a452e45b7f3
parent74e06c05b54856e31009b8cbb54ea735ee439381 (diff)
downloadlibgit2-39b1ad7f15d19837b3a25690c796ac0a1ac2720e.tar.gz
Plug configuration file search paths leaks
-rw-r--r--src/fileops.c2
-rw-r--r--src/fileops.h5
-rw-r--r--tests-clar/repo/config.c8
-rw-r--r--tests-clar/repo/open.c2
4 files changed, 16 insertions, 1 deletions
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)