When deciding whether to send the complete URL or just the document part,

we were looking at the original URL rather than the one we were currently
processing.  This meant that if we were trying to retrieve an HTTP URL but
were redirected to an HTTPS URL, and HTTPS proxying was enabled, we would
send an invalid request and most likely get garbage back.

MFC after:	3 days
This commit is contained in:
Dag-Erling Smørgrav 2018-11-27 16:23:17 +00:00
parent 52c0ec1455
commit a768df3e91

View File

@ -1617,7 +1617,7 @@ http_request_body(struct url *URL, const char *op, struct url_stat *us,
if (verbose)
fetch_info("requesting %s://%s%s",
url->scheme, host, url->doc);
if (purl && strcmp(URL->scheme, SCHEME_HTTPS) != 0) {
if (purl && strcmp(url->scheme, SCHEME_HTTPS) != 0) {
http_cmd(conn, "%s %s://%s%s HTTP/1.1",
op, url->scheme, host, url->doc);
} else {