summaryrefslogtreecommitdiff
path: root/net-misc/curl/files/curl-7.86.0-proxy-noproxy-tailmatching.patch
diff options
context:
space:
mode:
Diffstat (limited to 'net-misc/curl/files/curl-7.86.0-proxy-noproxy-tailmatching.patch')
-rw-r--r--net-misc/curl/files/curl-7.86.0-proxy-noproxy-tailmatching.patch66
1 files changed, 0 insertions, 66 deletions
diff --git a/net-misc/curl/files/curl-7.86.0-proxy-noproxy-tailmatching.patch b/net-misc/curl/files/curl-7.86.0-proxy-noproxy-tailmatching.patch
deleted file mode 100644
index 15f5e64c91f3..000000000000
--- a/net-misc/curl/files/curl-7.86.0-proxy-noproxy-tailmatching.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-https://bugs.gentoo.org/878365#c2
-https://github.com/curl/curl/issues/9821
-https://github.com/curl/curl/commit/b830f9ba9e94acf672cd191993ff679fa888838b
-
-From b830f9ba9e94acf672cd191993ff679fa888838b Mon Sep 17 00:00:00 2001
-From: Daniel Stenberg <daniel@haxx.se>
-Date: Fri, 28 Oct 2022 10:51:49 +0200
-Subject: [PATCH] noproxy: fix tail-matching
-
-Also ignore trailing dots in both host name and comparison pattern.
-
-Regression in 7.86.0 (from 1e9a538e05c0)
-
-Extended test 1614 to verify better.
-
-Reported-by: Henning Schild
-Fixes #9821
-Closes #9822
---- a/lib/noproxy.c
-+++ b/lib/noproxy.c
-@@ -153,9 +153,14 @@ bool Curl_check_noproxy(const char *name, const char *no_proxy)
- }
- else {
- unsigned int address;
-+ namelen = strlen(name);
- if(1 == Curl_inet_pton(AF_INET, name, &address))
- type = TYPE_IPV4;
-- namelen = strlen(name);
-+ else {
-+ /* ignore trailing dots in the host name */
-+ if(name[namelen - 1] == '.')
-+ namelen--;
-+ }
- }
-
- while(*p) {
-@@ -177,12 +182,23 @@ bool Curl_check_noproxy(const char *name, const char *no_proxy)
- if(tokenlen) {
- switch(type) {
- case TYPE_HOST:
-- if(*token == '.') {
-- ++token;
-- --tokenlen;
-- /* tailmatch */
-- match = (tokenlen <= namelen) &&
-- strncasecompare(token, name + (namelen - tokenlen), namelen);
-+ /* ignore trailing dots in the token to check */
-+ if(token[tokenlen - 1] == '.')
-+ tokenlen--;
-+
-+ if(tokenlen && (*token == '.')) {
-+ /* A: example.com matches '.example.com'
-+ B: www.example.com matches '.example.com'
-+ C: nonexample.com DOES NOT match '.example.com'
-+ */
-+ if((tokenlen - 1) == namelen)
-+ /* case A, exact match without leading dot */
-+ match = strncasecompare(token + 1, name, namelen);
-+ else if(tokenlen < namelen)
-+ /* case B, tailmatch with leading dot */
-+ match = strncasecompare(token, name + (namelen - tokenlen),
-+ tokenlen);
-+ /* case C passes through, not a match */
- }
- else
- match = (tokenlen == namelen) &&