aboutsummaryrefslogtreecommitdiff
path: root/builtin-cat-file.c
diff options
context:
space:
mode:
authorBjörn Steinbrink <B.Steinbrink@gmx.de>2008-06-29 03:21:25 +0200
committerJunio C Hamano <gitster@pobox.com>2008-06-28 19:50:56 -0700
commit5b8a94b1db4beba969d8cbb0e6e45033834b5913 (patch)
treef8096d4e0066ff55878725a960961bd4fb1bd6f4 /builtin-cat-file.c
parent762656e03e80a77aeca6163597640d4e48eee55c (diff)
downloadgit-5b8a94b1db4beba969d8cbb0e6e45033834b5913.tar.gz
git-5b8a94b1db4beba969d8cbb0e6e45033834b5913.tar.xz
git cat-file: Fix memory leak in batch mode
When run in batch mode, git cat-file never frees the memory for the blob contents it is printing. This quickly adds up and causes git-svn to be hardly usable for imports of large svn repos, because it uses cat-file in batch mode and cat-file's memory usage easily reaches several hundred MB without any good reason. Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin-cat-file.c')
-rw-r--r--builtin-cat-file.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/builtin-cat-file.c b/builtin-cat-file.c
index bd343efae..880e75af5 100644
--- a/builtin-cat-file.c
+++ b/builtin-cat-file.c
@@ -181,6 +181,7 @@ static int batch_one_object(const char *obj_name, int print_contents)
write_or_die(1, contents, size);
printf("\n");
fflush(stdout);
+ free(contents);
}
return 0;