diff options
author | Edward Thomson <ethomson@edwardthomson.com> | 2019-01-20 18:09:43 +0000 |
---|---|---|
committer | Edward Thomson <ethomson@edwardthomson.com> | 2019-01-20 18:09:43 +0000 |
commit | b8b796c14a29e07f4cbc0e4413c1c1bc3affddd8 (patch) | |
tree | 3739ea3cc662c7d8ee8018f7a6873f54e9aa36ca | |
parent | 86b522bdefafc0c4fda7d79e67ede7595de7544c (diff) | |
download | libgit2-b8b796c14a29e07f4cbc0e4413c1c1bc3affddd8.tar.gz |
repository: free memory in symlink detection functionethomson/memleaks
-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; |