aboutsummaryrefslogtreecommitdiff
path: root/http.c
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2013-02-06 05:39:52 -0500
committerJunio C Hamano <gitster@pobox.com>2013-02-06 07:50:56 -0800
commit3443db51a0f2a43061d4badc6a0065672386eae5 (patch)
tree7f5965d57f00c7c472db6513df0204a0915028c9 /http.c
parentaf3aec4469f91dcd34d60706a1addfedbb84ece5 (diff)
downloadgit-3443db51a0f2a43061d4badc6a0065672386eae5.tar.gz
git-3443db51a0f2a43061d4badc6a0065672386eae5.tar.xz
http_request: reset "type" strbuf before adding
Callers may pass us a strbuf which we use to record the content-type of the response. However, we simply appended to it rather than overwriting its contents, meaning that cruft in the strbuf gave us a bogus type. E.g., the multiple requests triggered by http_request could yield a type like "text/plainapplication/x-git-receive-pack-advertisement". Reported-by: Michael Schubert <mschub@elegosoft.com> Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'http.c')
-rw-r--r--http.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/http.c b/http.c
index d868d8b3d..d9d1aad3b 100644
--- a/http.c
+++ b/http.c
@@ -841,6 +841,7 @@ static int http_request(const char *url, struct strbuf *type,
if (type) {
char *t;
+ strbuf_reset(type);
curl_easy_getinfo(slot->curl, CURLINFO_CONTENT_TYPE, &t);
if (t)
strbuf_addstr(type, t);