git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 3/9] t/helper/test-read-midx.c: free MIDX within read_midx_file()

From
Taylor Blau <me@ttaylorr.com>
Date
Oct 26, 2021, 21:01 UTC
Message-ID
<84859d5b534606ab243b82afa119514f71ca1c03.1635282024.git.me@ttaylorr.com>
In-Reply-To
<cover.1635282024.git.me@ttaylorr.com>

When calling `read_midx_file()` to show information about a MIDX or list the objects contained within it we fail to call `close_midx()`, leaking the memory allocated to store that MIDX.

Fix this by calling `close_midx()` before exiting the function. We can drop the "early" return when `show_objects` is non-zero, since the next instruction is also a return.

(We could just as easily put a `cleanup` label here as with previous patches. But the only other time we terminate the function early is when we fail to load a MIDX in the first place. `close_midx()` does handle a NULL argument, but the extra complexity is likely not warranted).

Signed-off-by: Taylor Blau <me@ttaylorr.com>
---
 t/helper/test-read-midx.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/t/helper/test-read-midx.c b/t/helper/test-read-midx.c
index 9d6fa7a377..27072ba94d 100644
--- a/t/helper/test-read-midx.c
+++ b/t/helper/test-read-midx.c
@@ -55,9 +55,10 @@ static int read_midx_file(const char *object_dir, int show_objects)
 			printf("%s %"PRIu64"\t%s\n",
 			       oid_to_hex(&oid), e.offset, e.p->pack_name);
 		}
-		return 0;
 	}
 
+	close_midx(m);
+
 	return 0;
 }
 
-- 
2.33.0.96.g73915697e6
Previous: Taylor BlauNext: Taylor Blau
Message 4 of 13 in “midx: clean up t5319 under 'SANITIZE=leak'”
  1. 0/9 midx: clean up t5319 under 'SANITIZE=leak'Taylor Blau, Oct 26, 2021
  2. 1/9 midx.c: clean up chunkfile after reading the MIDXTaylor Blau, Oct 26, 2021
  3. 2/9 midx.c: don't leak MIDX from verify_midx_fileTaylor Blau, Oct 26, 2021
  4. 3/9 t/helper/test-read-midx.c: free MIDX within read_midx_file()Taylor Blau, Oct 26, 2021
  5. 4/9 builtin/pack-objects.c: don't leak memory via argumentsTaylor Blau, Oct 26, 2021
  6. 5/9 builtin/repack.c: avoid leaking child argumentsTaylor Blau, Oct 26, 2021
  7. Junio C HamanoOct 27, 2021
  8. Taylor BlauOct 28, 2021
  9. 6/9 builtin/multi-pack-index.c: don't leak concatenated optionsTaylor Blau, Oct 26, 2021
  10. 7/9 midx.c: write MIDX filenames to strbufTaylor Blau, Oct 26, 2021
  11. 8/9 pack-bitmap.c: don't leak type-level bitmapsTaylor Blau, Oct 26, 2021
  12. 9/9 pack-bitmap.c: more aggressively free in free_bitmap_index()Taylor Blau, Oct 26, 2021
  13. Junio C HamanoOct 27, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.