]> git.ipfire.org Git - thirdparty/git.git/commit
midx-write: fix leaking hashfile on error cases
authorPatrick Steinhardt <ps@pks.im>
Thu, 22 Aug 2024 09:17:33 +0000 (11:17 +0200)
committerJunio C Hamano <gitster@pobox.com>
Thu, 22 Aug 2024 16:18:04 +0000 (09:18 -0700)
commit8a7846383e80ad3370344d752c5bb3a2c78cbf65
tree6d1f504cf5fdbedd3e525a6bea8fe7262aad8e87
parent479601e9f4708a921e9bfad3a73e931cbed8817a
midx-write: fix leaking hashfile on error cases

When writing the MIDX file we first create the `struct hashfile` used to
write the trailer hash, and then afterwards we verify whether we can
actually write the MIDX in the first place. When we decide that we
can't, this leads to a memory leak because we never free the hash file
contents.

We could fix this by freeing the hashfile on the exit path. There is a
better option though: we can simply move the checks for the error
condition earlier. As there is no early exit between creating the
hashfile and finalizing it anymore this is sufficient to fix the memory
leak.

While at it, also move around the block checking for `ctx.entries_nr`.
This change is not required to fix the memory leak, but it feels natural
to move together all massaging of parameters before we go with them and
execute the actual logic.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
midx-write.c