summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2017-10-09 13:48:24 -0400
committerJunio C Hamano <gitster@pobox.com>2017-10-10 08:59:02 +0900
commitb2401586fc5168974c77cdc6d8548c51e6c852a6 (patch)
treebf88aa75e5ab37518b653729cc7d8a1587f86c99
parent11179eb31178d3d162e1b0af50edbdc2a14da23b (diff)
downloadgit-b2401586fc5168974c77cdc6d8548c51e6c852a6.tar.gz
write_entry: fix leak when retrying delayed filter
When write_entry() retries a delayed filter request, we don't need to send the blob content to the filter again, and set the pointer to NULL. But doing so means we leak the contents we read earlier from read_blob_entry(). Let's make sure to free it before dropping the pointer. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--entry.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/entry.c b/entry.c
index ab79f1f69c..637c5958b0 100644
--- a/entry.c
+++ b/entry.c
@@ -283,6 +283,7 @@ static int write_entry(struct cache_entry *ce,
if (dco && dco->state != CE_NO_DELAY) {
/* Do not send the blob in case of a retry. */
if (dco->state == CE_RETRY) {
+ free(new);
new = NULL;
size = 0;
}