diff options
author | Mike Hommey <mh@glandium.org> | 2007-12-14 22:18:00 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-12-14 21:31:58 -0800 |
commit | 3b683b91cd78dec027105a2810079eb0b27ab2c0 (patch) | |
tree | 88bc78854f8a9569ccf4199711de94509f66ff43 /http-push.c | |
parent | cb891a5989c41ed479db9eb4b0a69cef8bb98ea8 (diff) | |
download | git-3b683b91cd78dec027105a2810079eb0b27ab2c0.tar.gz |
Fix some more memory leaks in http-push.c
Signed-off-by: Mike Hommey <mh@glandium.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'http-push.c')
-rw-r--r-- | http-push.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/http-push.c b/http-push.c index fffbe9ccb4..fc60bfd5f4 100644 --- a/http-push.c +++ b/http-push.c @@ -925,11 +925,14 @@ static int fetch_index(unsigned char *sha1) hex); } } else { + free(url); return error("Unable to start request"); } - if (has_pack_index(sha1)) + if (has_pack_index(sha1)) { + free(url); return 0; + } if (push_verbosely) fprintf(stderr, "Getting index for pack %s\n", hex); @@ -939,9 +942,11 @@ static int fetch_index(unsigned char *sha1) filename = sha1_pack_index_name(sha1); snprintf(tmpfile, sizeof(tmpfile), "%s.temp", filename); indexfile = fopen(tmpfile, "a"); - if (!indexfile) + if (!indexfile) { + free(url); return error("Unable to open local file %s for pack index", tmpfile); + } slot = get_active_slot(); slot->results = &results; @@ -1135,10 +1140,12 @@ int fetch_ref(char *ref, unsigned char *sha1) curl_easy_setopt(slot->curl, CURLOPT_URL, url); if (start_active_slot(slot)) { run_active_slot(slot); + free(url); if (results.curl_result != CURLE_OK) return error("Couldn't get %s for %s\n%s", url, ref, curl_errorstr); } else { + free(url); return error("Unable to start request"); } @@ -2107,6 +2114,7 @@ static int remote_exists(const char *path) if (start_active_slot(slot)) { run_active_slot(slot); + free(url); if (results.http_code == 404) return 0; else if (results.curl_result == CURLE_OK) @@ -2114,6 +2122,7 @@ static int remote_exists(const char *path) else fprintf(stderr, "HEAD HTTP error %ld\n", results.http_code); } else { + free(url); fprintf(stderr, "Unable to start HEAD request\n"); } |