diff options
author | Martin Ågren <martin.agren@gmail.com> | 2017-11-07 20:39:45 (GMT) |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-11-08 02:34:00 (GMT) |
commit | 4da72644b768b0491110a8ba0aa84d32b6bde41c (patch) | |
tree | be9d8ddc0fc3d78e3d5aa2b80edbf396b7c2b566 /builtin/merge.c | |
parent | a452d0f4bae99c9acef6f7db75f6f1d922618732 (diff) | |
download | git-4da72644b768b0491110a8ba0aa84d32b6bde41c.zip git-4da72644b768b0491110a8ba0aa84d32b6bde41c.tar.gz git-4da72644b768b0491110a8ba0aa84d32b6bde41c.tar.bz2 |
reduce_heads: fix memory leaks
We currently have seven callers of `reduce_heads(foo)`. Six of them do
not use the original list `foo` again, and actually, all six of those
end up leaking it.
Introduce and use `reduce_heads_replace(&foo)` as a leak-free version of
`foo = reduce_heads(foo)` to fix several of these. Fix the remaining
leaks using `free_commit_list()`.
While we're here, document `reduce_heads()` and mark it as `extern`.
Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/merge.c')
-rw-r--r-- | builtin/merge.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/builtin/merge.c b/builtin/merge.c index ab5ffe8..fbbf2a9 100644 --- a/builtin/merge.c +++ b/builtin/merge.c @@ -999,6 +999,7 @@ static struct commit_list *reduce_parents(struct commit *head_commit, /* Find what parents to record by checking independent ones. */ parents = reduce_heads(remoteheads); + free_commit_list(remoteheads); remoteheads = NULL; remotes = &remoteheads; |