diff options
| author | Patrick Steinhardt <ps@pks.im> | 2024-09-30 11:14:03 +0200 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2024-09-30 11:23:07 -0700 |
| commit | 4cc2cee5ac1491960afc54cc5ef14b50ddceb4d2 (patch) | |
| tree | b7bc3a80016c9ba34d3c33096db0f623c91c4378 /revision.c | |
| parent | 9d4855eef3644ac00d62e08d797ff7db554ca65d (diff) | |
| download | git-4cc2cee5ac1491960afc54cc5ef14b50ddceb4d2.tar.gz | |
revision: fix memory leaks when rewriting parents
Both `rewrite_parents()` and `remove_duplicate_parents()` may end up
dropping some parents from a commit without freeing the respective
`struct commit_list` items. This causes a bunch of memory leaks. Plug
these.
Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'revision.c')
| -rw-r--r-- | revision.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/revision.c b/revision.c index e79f39e555..6b452ea182 100644 --- a/revision.c +++ b/revision.c @@ -3250,6 +3250,7 @@ static int remove_duplicate_parents(struct rev_info *revs, struct commit *commit struct commit *parent = p->item; if (parent->object.flags & TMP_MARK) { *pp = p->next; + free(p); if (ts) compact_treesame(revs, commit, surviving_parents); continue; @@ -4005,6 +4006,7 @@ int rewrite_parents(struct rev_info *revs, struct commit *commit, break; case rewrite_one_noparents: *pp = parent->next; + free(parent); continue; case rewrite_one_error: return -1; |
