Commit 9269ccce143578deec4d4e6e7755068f130abe96

Carlos Martín Nieto 2012-01-19T23:44:52

diff-index: fix leak The buffer wasn't getting freed if the last difference was a deletion.

diff --git a/src/transports/http.c b/src/transports/http.c
index ce68ab7..38446bd 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 f214902..373d82b 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;
 	}