gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnurl] 87/411: http_proxy: do not crash with HTTPS_PROXY and NO_PROXY s


From: gnunet
Subject: [gnurl] 87/411: http_proxy: do not crash with HTTPS_PROXY and NO_PROXY set
Date: Wed, 13 Jan 2021 01:18:22 +0100

This is an automated email from the git hooks/post-receive script.

nikita pushed a commit to branch master
in repository gnurl.

commit 3eff1c5092e542819ac7e6454a70c94b36ab2a40
Author: Martin Bašti <mbasti@redhat.com>
AuthorDate: Thu Aug 27 23:09:56 2020 +0200

    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 d342c4e69..2f02a0a16 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:

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]