mirror of
https://github.com/git/git.git
synced 2026-01-10 10:13:33 +00:00
test-mktemp: plug memory and descriptor leaks
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>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
bb5c624209
commit
14b561e768
@@ -6,10 +6,16 @@
|
|||||||
|
|
||||||
int cmd__mktemp(int argc, const char **argv)
|
int cmd__mktemp(int argc, const char **argv)
|
||||||
{
|
{
|
||||||
|
char *template;
|
||||||
|
int fd;
|
||||||
|
|
||||||
if (argc != 2)
|
if (argc != 2)
|
||||||
usage("Expected 1 parameter defining the temporary file template");
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user