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

[PATCH] test-mktemp: plug memory and descriptor leaks

From
Jeff King <peff@peff.net>
Date
Nov 18, 2025, 12:21 UTC
Message-ID
<20251118122124.GA1117960@coredump.intra.peff.net>
We test xmkstemp() in our helper by just calling:
  xmkstemp(xstrdup(argv[1]));

This leaks both the copied string as well as the descriptor returned by the function. In practice this isn't a big deal, since we immediately exit the program, but:

  1. LSan will complain about the memory leak. The only reason we did
     not notice this in our leak-checking builds is that both of the
     callers in the test suite (both in t0070) pass a broken template
     (and expect failure). So the function calls die() before we can
     actually leak.
     But it's an accident waiting to happen if anybody adds a call which
     succeeds.
  2. Coverity complains about the descriptor leak. There's a long list
     of uninteresting or false positives in Coverity's results, but
     since we're here we might as well fix it, too.

I didn't bother adding a new test that triggers the leak. It's not even in real production code, but just in the test-helper itself.

Signed-off-by: Jeff King <peff@peff.net>
---
I think the rewrite of xmkstemp() triggered Coverity to consider this a
"new" problem, even though it has been there for years. So not urgent,
but this is mostly just trying not to waste the brain cycles I spent
analyzing. :)
 t/helper/test-mktemp.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/t/helper/test-mktemp.c b/t/helper/test-mktemp.c
index 2290688940..da195640a9 100644
--- a/t/helper/test-mktemp.c
+++ b/t/helper/test-mktemp.c
@@ -6,10 +6,16 @@
 
 int cmd__mktemp(int argc, const char **argv)
 {
+	char *template;
+	int fd;
+
 	if (argc != 2)
 		usage("Expected 1 parameter defining the temporary file template");
+	template = xstrdup(argv[1]);
 
-	xmkstemp(xstrdup(argv[1]));
+	fd = xmkstemp(template);
 
+	close(fd);
+	free(template);
 	return 0;
 }
-- 
2.52.0.292.gf04cec7acc
Message 1 of 1 in “test-mktemp: plug memory and descriptor leaks”
  1. test-mktemp: plug memory and descriptor leaksJeff King, Nov 18, 2025

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.