From c9675185b64e4d97c8c83eb775b79dd86b36120a Mon Sep 17 00:00:00 2001
From: Conny Seifert <conny.martin@t-systems.com>
Date: Mon, 18 Jan 2021 15:01:05 +0000
Subject: [PATCH] libfetch: fix parsing of proxy response to CONNECT requests

Instead of skipping just one line, properly parse the response headers.

[TT: reworded commit message]

(cherry picked from commit b1935a1e79854b332b04916a2829b0c09d1b26c9)
---
 libfetch/http.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/libfetch/http.c b/libfetch/http.c
index 7141b985..95c57f6d 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) {
-- 
GitLab