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 <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Taylor Blau committed
Oct 26, 2021 at 17:01 UTC
492cb394fb2bcfa9a2f0f3f6cab466909927523f
1 file changed
+3
-1
midx.c
+3
-1
@@ -1603,7 +1603,7 @@ int verify_midx_file(struct repository *r, const char *object_dir, unsigned flag
1603
* Remaining tests assume that we have objects, so we can
1604
* return here.
1605
*/
1606
- return verify_midx_error;
1606
+ goto cleanup;
1607
}
1608
1609
if (flags & MIDX_PROGRESS)
@@ -1681,7 +1681,9 @@ int verify_midx_file(struct repository *r, const char *object_dir, unsigned flag
1681
}
1682
stop_progress(&progress);
1683
1684
+cleanup:
1685
free(pairs);
1686
+ close_midx(m);
1687
1688
return verify_midx_error;
1689
}