From: Taylor Blau Date: Tue, 19 May 2026 15:58:16 +0000 (-0400) Subject: packfile: ensure `close_pack_revindex()` frees in-memory revindex X-Git-Tag: v2.55.0-rc0~45^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b0d6e7b0d0b1c20fc847f371dcc261a0c7b27be1;p=thirdparty%2Fgit.git packfile: ensure `close_pack_revindex()` frees in-memory revindex The following commit will introduce a case where we write a MIDX bitmap over packs that do not themselves have on-disk *.rev files. This case is supported within Git, and we will simply fall back to generating the revindex in memory. But we don't ever release that memory, causing a leak that is exposed by a test introduced in the following commit. (As far as I could find, we never free()'d memory allocated as a byproduct of creating an in-memory revindex, likely because that code predates the leak-checking niceties we have in the test suite now.) Rectify this by calling `FREE_AND_NULL()` on the `p->revindex` field when calling `close_pack_revindex()`. Signed-off-by: Taylor Blau Signed-off-by: Junio C Hamano --- diff --git a/packfile.c b/packfile.c index b012d648ad..a1e88fdb22 100644 --- a/packfile.c +++ b/packfile.c @@ -420,6 +420,8 @@ void close_pack_index(struct packed_git *p) static void close_pack_revindex(struct packed_git *p) { + FREE_AND_NULL(p->revindex); + if (!p->revindex_map) return;