From 492cb394fb2bcfa9a2f0f3f6cab466909927523f Mon Sep 17 00:00:00 2001 From: Taylor Blau Date: Tue, 26 Oct 2021 17:01:08 -0400 Subject: [PATCH] midx.c: don't leak MIDX from verify_midx_file The function midx.c:verify_midx_file() allocates a MIDX struct by calling load_multi_pack_index(). But when cleaning up, it calls free() without freeing any resources associated with the MIDX. Call the more appropriate close_midx() which does free those resources, which causes t5319.3 to pass when Git is compiled with SANITIZE=leak. Signed-off-by: Taylor Blau Signed-off-by: Junio C Hamano --- midx.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/midx.c b/midx.c index 7a8b027be0..e529ca76c1 100644 --- a/midx.c +++ b/midx.c @@ -1603,7 +1603,7 @@ int verify_midx_file(struct repository *r, const char *object_dir, unsigned flag * Remaining tests assume that we have objects, so we can * return here. */ - return verify_midx_error; + goto cleanup; } if (flags & MIDX_PROGRESS) @@ -1681,7 +1681,9 @@ int verify_midx_file(struct repository *r, const char *object_dir, unsigned flag } stop_progress(&progress); +cleanup: free(pairs); + close_midx(m); return verify_midx_error; }