Plug some leaks

This commit is contained in:
Carlos Martín Nieto 2015-09-27 23:32:20 +02:00
parent a8d0b4de92
commit 5c5df666b0
3 changed files with 10 additions and 0 deletions

View File

@ -229,6 +229,7 @@ int git_submodule_lookup(
if (error < 0) { if (error < 0) {
git_submodule_free(sm); git_submodule_free(sm);
git_buf_free(&path);
return error; return error;
} }
@ -1699,6 +1700,8 @@ static int submodule_read_config(git_submodule *sm, git_config *cfg)
* should be strcasecmp * should be strcasecmp
*/ */
if (strcmp(sm->name, value) != 0) { if (strcmp(sm->name, value) != 0) {
if (sm->path != sm->name)
git__free(sm->path);
sm->path = git__strdup(value); sm->path = git__strdup(value);
GITERR_CHECK_ALLOC(sm->path); GITERR_CHECK_ALLOC(sm->path);
} }

View File

@ -48,6 +48,8 @@ void test_core_mkdir__absolute(void)
cl_assert(!git_path_isdir(path.ptr)); cl_assert(!git_path_isdir(path.ptr));
cl_git_fail(git_futils_mkdir(path.ptr, 0755, 0)); cl_git_fail(git_futils_mkdir(path.ptr, 0755, 0));
cl_assert(!git_path_isdir(path.ptr)); cl_assert(!git_path_isdir(path.ptr));
git_buf_free(&path);
} }
void test_core_mkdir__basic(void) void test_core_mkdir__basic(void)

View File

@ -77,5 +77,10 @@ void test_index_rename__casechanging(void)
cl_assert_equal_i(1, git_index_entrycount(index)); cl_assert_equal_i(1, git_index_entrycount(index));
else else
cl_assert_equal_i(2, git_index_entrycount(index)); cl_assert_equal_i(2, git_index_entrycount(index));
git_index_free(index);
git_repository_free(repo);
cl_fixture_cleanup("rename");
} }