diff options
author | Edward Thomson <ethomson@edwardthomson.com> | 2019-01-20 18:33:36 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-20 18:33:36 +0000 |
commit | 68166017dc31164aa9ad610d0d87658ab065a902 (patch) | |
tree | 158ea0c93955b23b18b5e071668f6fa8ad53244a | |
parent | 1e92a0363db4378cdef40877a33ef7ce3a7e15ac (diff) | |
parent | b8b796c14a29e07f4cbc0e4413c1c1bc3affddd8 (diff) | |
download | libgit2-68166017dc31164aa9ad610d0d87658ab065a902.tar.gz |
Merge pull request #4948 from libgit2/ethomson/memleaks
repository: free memory in symlink detection function
-rw-r--r-- | src/repository.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/repository.c b/src/repository.c index 21e44351f..0f38f88f2 100644 --- a/src/repository.c +++ b/src/repository.c @@ -1415,6 +1415,10 @@ static bool is_filesystem_case_insensitive(const char *gitdir_path) static bool are_symlinks_supported(const char *wd_path) { git_config *config = NULL; + git_buf global_buf = GIT_BUF_INIT; + git_buf xdg_buf = GIT_BUF_INIT; + git_buf system_buf = GIT_BUF_INIT; + git_buf programdata_buf = GIT_BUF_INIT; git_buf path = GIT_BUF_INIT; int fd; struct stat st; @@ -1428,11 +1432,6 @@ static bool are_symlinks_supported(const char *wd_path) * _not_ set, then we do not test or enable symlink support. */ #ifdef GIT_WIN32 - git_buf global_buf = GIT_BUF_INIT; - git_buf xdg_buf = GIT_BUF_INIT; - git_buf system_buf = GIT_BUF_INIT; - git_buf programdata_buf = GIT_BUF_INIT; - git_config_find_global(&global_buf); git_config_find_xdg(&xdg_buf); git_config_find_system(&system_buf); @@ -1461,6 +1460,10 @@ static bool are_symlinks_supported(const char *wd_path) (void)p_unlink(path.ptr); done: + git_buf_dispose(&global_buf); + git_buf_dispose(&xdg_buf); + git_buf_dispose(&system_buf); + git_buf_dispose(&programdata_buf); git_buf_dispose(&path); git_config_free(config); return symlinks != 0; |