From 9269ccce143578deec4d4e6e7755068f130abe96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn=20Nieto?= Date: Thu, 19 Jan 2012 23:44:52 +0100 Subject: [PATCH] diff-index: fix leak The buffer wasn't getting freed if the last difference was a deletion. --- src/transports/http.c | 2 +- src/tree.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/transports/http.c b/src/transports/http.c index ce68ab717..38446bdef 100644 --- a/src/transports/http.c +++ b/src/transports/http.c @@ -71,7 +71,7 @@ static int gen_request(git_buf *buf, const char *url, const char *host, const ch if (content_length > 0) { git_buf_printf(buf, "Accept: application/x-git-%s-result\r\n", service); git_buf_printf(buf, "Content-Type: application/x-git-%s-request\r\n", service); - git_buf_printf(buf, "Content-Length: %" PRIuZ "\r\n", content_length); + git_buf_printf(buf, "Content-Length: %"PRIuZ "\r\n", content_length); } else { git_buf_puts(buf, "Accept: */*\r\n"); } diff --git a/src/tree.c b/src/tree.c index f21490235..373d82b3a 100644 --- a/src/tree.c +++ b/src/tree.c @@ -993,6 +993,7 @@ static int diff_index_cb(const char *root, git_tree_entry *tentry, void *data) if (!ientry) { error = signal_deletion(tentry, cbdata->cb, cbdata->data); + git_buf_free(&fn_buf); goto exit; }