curl: backport fix for crash with NO_PROXY
Backported from https://github.com/curl/curl/commit/3eff1c5092e542819ac7e6454a70c94b36ab
This commit is contained in:
parent
58b6b41610
commit
517e4d148e
2 changed files with 55 additions and 1 deletions
54
srcpkgs/curl/patches/fix-crash-no-proxy.patch
Normal file
54
srcpkgs/curl/patches/fix-crash-no-proxy.patch
Normal file
|
@ -0,0 +1,54 @@
|
|||
From 3eff1c5092e542819ac7e6454a70c94b36ab2a40 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Martin=20Ba=C5=A1ti?= <mbasti@redhat.com>
|
||||
Date: Thu, 27 Aug 2020 23:09:56 +0200
|
||||
Subject: [PATCH] http_proxy: do not crash with HTTPS_PROXY and NO_PROXY set
|
||||
|
||||
... in case NO_PROXY takes an effect
|
||||
|
||||
Without this patch, the following command crashes:
|
||||
|
||||
$ GIT_CURL_VERBOSE=1 NO_PROXY=github.com HTTPS_PROXY=https://example.com \
|
||||
git clone https://github.com/curl/curl.git
|
||||
|
||||
Minimal libcurl-based reproducer:
|
||||
|
||||
#include <curl/curl.h>
|
||||
|
||||
int main() {
|
||||
CURL *curl = curl_easy_init();
|
||||
if(curl) {
|
||||
CURLcode ret;
|
||||
curl_easy_setopt(curl, CURLOPT_URL, "https://github.com/");
|
||||
curl_easy_setopt(curl, CURLOPT_PROXY, "example.com");
|
||||
/* set the proxy type */
|
||||
curl_easy_setopt(curl, CURLOPT_PROXYTYPE, CURLPROXY_HTTPS);
|
||||
curl_easy_setopt(curl, CURLOPT_NOPROXY, "github.com");
|
||||
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
|
||||
ret = curl_easy_perform(curl);
|
||||
curl_easy_cleanup(curl);
|
||||
return ret;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
Assisted-by: Kamil Dudka
|
||||
Bug: https://bugzilla.redhat.com/1873327
|
||||
Closes #5902
|
||||
---
|
||||
lib/url.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/lib/url.c b/lib/url.c
|
||||
index d342c4e6986..2f02a0a16a3 100644
|
||||
--- a/lib/url.c
|
||||
+++ b/lib/url.c
|
||||
@@ -2556,6 +2556,9 @@ static CURLcode create_conn_helper_init_proxy(struct connectdata *conn)
|
||||
conn->bits.socksproxy = FALSE;
|
||||
conn->bits.proxy_user_passwd = FALSE;
|
||||
conn->bits.tunnel_proxy = FALSE;
|
||||
+ /* CURLPROXY_HTTPS does not have its own flag in conn->bits, yet we need
|
||||
+ to signal that CURLPROXY_HTTPS is not used for this connection */
|
||||
+ conn->http_proxy.proxytype = CURLPROXY_HTTP;
|
||||
}
|
||||
|
||||
out:
|
|
@ -1,7 +1,7 @@
|
|||
# Template file for 'curl'
|
||||
pkgname=curl
|
||||
version=7.72.0
|
||||
revision=1
|
||||
revision=2
|
||||
build_style=gnu-configure
|
||||
configure_args="ac_cv_sizeof_off_t=8 --enable-threaded-resolver --enable-ipv6
|
||||
$(vopt_with rtmp) $(vopt_with gssapi) $(vopt_enable ldap) $(vopt_with gnutls)
|
||||
|
|
Loading…
Reference in a new issue