summaryrefslogtreecommitdiff
path: root/entry.c
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2017-10-09 17:48:24 (GMT)
committerJunio C Hamano <gitster@pobox.com>2017-10-09 23:59:02 (GMT)
commitb2401586fc5168974c77cdc6d8548c51e6c852a6 (patch)
treebf88aa75e5ab37518b653729cc7d8a1587f86c99 /entry.c
parent11179eb31178d3d162e1b0af50edbdc2a14da23b (diff)
downloadgit-b2401586fc5168974c77cdc6d8548c51e6c852a6.zip
git-b2401586fc5168974c77cdc6d8548c51e6c852a6.tar.gz
git-b2401586fc5168974c77cdc6d8548c51e6c852a6.tar.bz2
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>
Diffstat (limited to 'entry.c')
-rw-r--r--entry.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/entry.c b/entry.c
index ab79f1f..637c595 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;
}