Commit a9e1339c06795c9b5f4eb4e5b2f56b8fadf98115

Ben Straub 2013-02-14T08:12:05

Fix a leak when canceling a network operation

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
diff --git a/src/transports/smart_protocol.c b/src/transports/smart_protocol.c
index 596dba6..75494b2 100644
--- a/src/transports/smart_protocol.c
+++ b/src/transports/smart_protocol.c
@@ -493,10 +493,11 @@ int git_smart__download_pack(
 			git__free(pkt);
 		} else if (pkt->type == GIT_PKT_DATA) {
 			git_pkt_data *p = (git_pkt_data *) pkt;
-			if ((error = writepack->add(writepack, p->data, p->len, stats)) < 0)
-				goto on_error;
+			error = writepack->add(writepack, p->data, p->len, stats);
 
 			git__free(pkt);
+			if (error < 0)
+				goto on_error;
 		} else if (pkt->type == GIT_PKT_FLUSH) {
 			/* A flush indicates the end of the packfile */
 			git__free(pkt);