summaryrefslogtreecommitdiffstats
path: root/csum-file.c
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2024-08-14 08:52:03 +0200
committerJunio C Hamano <gitster@pobox.com>2024-08-14 19:07:57 +0200
commitc81dcf630cec64d0042f08f7210300671ed5b926 (patch)
tree1b9c4245155ba6f3d69f0406b369d88f9866448c /csum-file.c
parentobject-name: fix leaking symlink paths in object context (diff)
downloadgit-c81dcf630cec64d0042f08f7210300671ed5b926.tar.xz
git-c81dcf630cec64d0042f08f7210300671ed5b926.zip
bulk-checkin: fix leaking state TODO
When flushing a bulk-checking to disk we also reset the `struct bulk_checkin_packfile` state. But while we free some of its members, others aren't being free'd, leading to memory leaks: - The temporary packfile name is not getting freed. - The `struct hashfile` only gets freed in case we end up calling `finalize_hashfile()`. There are code paths though where that is not the case, namely when nothing has been written. For this, we need to make `free_hashfile()` public. Fix those leaks. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'csum-file.c')
-rw-r--r--csum-file.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/csum-file.c b/csum-file.c
index 8abbf01325..7e0ece1305 100644
--- a/csum-file.c
+++ b/csum-file.c
@@ -56,7 +56,7 @@ void hashflush(struct hashfile *f)
}
}
-static void free_hashfile(struct hashfile *f)
+void free_hashfile(struct hashfile *f)
{
free(f->buffer);
free(f->check_buffer);