summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVicent Martí <vicent@github.com>2013-05-03 08:19:12 -0700
committerVicent Martí <vicent@github.com>2013-05-03 08:19:12 -0700
commit811c761fe14fbf14591d215b36594a332e54e3d3 (patch)
tree7ddd89bd06190dc029ff7aa1ca739b7d670ec8f5
parent42b2bcf038b4e45df33a1078dd05a95759addd35 (diff)
parentd80416384f67474cd98a8fafe2cc1e4f1f5fa38b (diff)
downloadlibgit2-811c761fe14fbf14591d215b36594a332e54e3d3.tar.gz
Merge pull request #1540 from ethomson/leaks
fix some leaks
-rw-r--r--src/diff.c3
-rw-r--r--src/index.c1
-rw-r--r--src/transports/smart_protocol.c6
-rw-r--r--tests-clar/commit/parse.c4
-rw-r--r--tests-clar/submodule/status.c2
5 files changed, 11 insertions, 5 deletions
diff --git a/src/diff.c b/src/diff.c
index a154e67e8..fbff1a6fb 100644
--- a/src/diff.c
+++ b/src/diff.c
@@ -716,7 +716,7 @@ static int diff_scan_inside_untracked_dir(
error = git_iterator_advance(&info->nitem, info->new_iter);
}
- return error;
+ goto done;
}
/* look for actual untracked file */
@@ -747,6 +747,7 @@ static int diff_scan_inside_untracked_dir(
break;
}
+done:
git_buf_free(&base);
return error;
diff --git a/src/index.c b/src/index.c
index d4aa475a9..ee659f8ab 100644
--- a/src/index.c
+++ b/src/index.c
@@ -349,6 +349,7 @@ static void index_free(git_index *index)
{
git_index_clear(index);
git_vector_free(&index->entries);
+ git_vector_free(&index->names);
git_vector_free(&index->reuc);
git__free(index->index_file_path);
diff --git a/src/transports/smart_protocol.c b/src/transports/smart_protocol.c
index a5ad1e422..765b914b7 100644
--- a/src/transports/smart_protocol.c
+++ b/src/transports/smart_protocol.c
@@ -23,10 +23,16 @@ int git_smart__store_refs(transport_smart *t, int flushes)
int error, flush = 0, recvd;
const char *line_end;
git_pkt *pkt;
+ git_pkt_ref *ref;
+ size_t i;
/* Clear existing refs in case git_remote_connect() is called again
* after git_remote_disconnect().
*/
+ git_vector_foreach(refs, i, ref) {
+ git__free(ref->head.name);
+ git__free(ref);
+ }
git_vector_clear(refs);
do {
diff --git a/tests-clar/commit/parse.c b/tests-clar/commit/parse.c
index 8de4401dc..415860a6e 100644
--- a/tests-clar/commit/parse.c
+++ b/tests-clar/commit/parse.c
@@ -386,10 +386,6 @@ This commit has a few LF at the start of the commit message";
\n\
This commit has a few LF at the start of the commit message";
- commit = (git_commit*)git__malloc(sizeof(git_commit));
- memset(commit, 0x0, sizeof(git_commit));
- commit->object.repo = g_repo;
-
cl_git_pass(parse_commit(&commit, buffer));
cl_assert_equal_s(message, git_commit_message(commit));
git_commit__free(commit);
diff --git a/tests-clar/submodule/status.c b/tests-clar/submodule/status.c
index fca84af63..88f388052 100644
--- a/tests-clar/submodule/status.c
+++ b/tests-clar/submodule/status.c
@@ -409,4 +409,6 @@ void test_submodule_status__untracked_dirs_containing_ignored_files(void)
GIT_SUBMODULE_STATUS_IN_WD;
cl_assert(status == expected);
+
+ git_buf_free(&path);
}