Download raw body.
gotwebd repo_commit memory leak
This looks like a memory leak, doesn't it? I assume if a repo_commit
is not put on the list of repo_commits then we should free it.
ok?
diff /home/stsp/src/got
path + /home/stsp/src/got
commit - de4367eca3fd8fad9122290f92c24cc3a5039cdd
blob - e6b67696b6074e0499b029da5f51a883bf9c1e89
file + gotwebd/got_operations.c
--- gotwebd/got_operations.c
+++ gotwebd/got_operations.c
@@ -421,30 +421,31 @@ got_get_repo_commits(struct request *c, size_t limit)
error = got_init_repo_commit(&repo_commit);
if (error)
goto done;
error = got_get_repo_commit(c, repo_commit, commit,
&refs, &next_id);
if (error) {
gotweb_free_repo_commit(repo_commit);
goto done;
}
if (--limit == 0 && chk_next) {
t->more_id = strdup(repo_commit->commit_id);
if (t->more_id == NULL)
error = got_error_from_errno("strdup");
+ gotweb_free_repo_commit(repo_commit);
goto done;
}
TAILQ_INSERT_TAIL(&t->repo_commits, repo_commit, entry);
if (limit == 0)
goto done;
if (commit) {
got_object_commit_close(commit);
commit = NULL;
}
}
done:
if (ref)
gotwebd repo_commit memory leak