summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Vahlensieck <git@academicsolutions.ch>2021-03-12 17:08:15 +0100
committerTimo Teräs <timo.teras@iki.fi>2021-04-11 14:25:25 +0300
commit16118478e6d18be3fba0fdee3c2bfbcf1eeae73f (patch)
treee5ff7ea988d1195789fbb0382cc2f9077d9c0541
parent5c65717988efeea347907e97f9f219c7bca905c0 (diff)
downloadapk-tools-16118478e6d18be3fba0fdee3c2bfbcf1eeae73f.tar.gz
apk-tools-16118478e6d18be3fba0fdee3c2bfbcf1eeae73f.tar.bz2
apk-tools-16118478e6d18be3fba0fdee3c2bfbcf1eeae73f.tar.xz
apk-tools-16118478e6d18be3fba0fdee3c2bfbcf1eeae73f.zip
Use correct port when redirected
If server redirects from http to https, libfetch detects this, but wrongly uses the old url scheme to determine the port. This subsequently leads to the following OpenSSL error: 139741541575496:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:ssl/record/ssl3_record.c:331: Using the new scheme fixes this. This error message comes from trying to connect to port 80 with TLS, it can also be observed by issuing $ openssl s_client -connect alpinelinux.org:80 This bug was introduced in commit: 7158474 libfetch: keep http auth only if redirect is for the same host (cherry picked from commit 63d05ee450c1a810cc33f7dfad9d660f993a9d1c)
-rw-r--r--libfetch/http.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libfetch/http.c b/libfetch/http.c
index 8239313..e3d8d53 100644
--- a/libfetch/http.c
+++ b/libfetch/http.c
@@ -1065,7 +1065,7 @@ http_request(struct url *URL, const char *op, struct url_stat *us,
goto ouch;
}
if (!new->port)
- new->port = fetch_default_port(url->scheme);
+ new->port = fetch_default_port(new->scheme);
if (!new->user[0] && !new->pwd[0] &&
new->port == url->port &&
strcmp(new->scheme, url->scheme) == 0 &&