summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConny Seifert <conny.martin@t-systems.com>2021-01-18 15:01:05 +0000
committerTimo Teräs <timo.teras@iki.fi>2021-01-19 12:08:52 +0200
commit4087ab92c4faf21e62e85685e5960106d898386a (patch)
tree567b53ca81e10c89bad5a9fd73d2838acf634bac
parent167fd86794892b3717d5fe7fcf6c348d3a52e645 (diff)
downloadapk-tools-4087ab92c4faf21e62e85685e5960106d898386a.tar.gz
apk-tools-4087ab92c4faf21e62e85685e5960106d898386a.tar.bz2
apk-tools-4087ab92c4faf21e62e85685e5960106d898386a.tar.xz
apk-tools-4087ab92c4faf21e62e85685e5960106d898386a.zip
libfetch: fix parsing of proxy response to CONNECT requests
Instead of skipping just one line, properly parse the response headers. [TT: reworded commit message]
-rw-r--r--libfetch/http.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/libfetch/http.c b/libfetch/http.c
index 7141b98..95c57f6 100644
--- a/libfetch/http.c
+++ b/libfetch/http.c
@@ -725,11 +725,6 @@ http_connect(struct url *URL, struct url *purl, const char *flags, int *cached)
http_seterr(conn->err);
goto ouch;
}
- /* Read and discard the rest of the proxy response */
- if (fetch_getln(conn) < 0) {
- fetch_syserr();
- goto ouch;
- }
do {
switch ((h = http_next_header(conn, &p))) {
case hdr_syserror:
@@ -741,7 +736,7 @@ http_connect(struct url *URL, struct url *purl, const char *flags, int *cached)
default:
/* ignore */ ;
}
- } while (h < hdr_end);
+ } while (h > hdr_end);
}
if (strcasecmp(URL->scheme, SCHEME_HTTPS) == 0 &&
fetch_ssl(conn, URL, verbose) == -1) {