Go to file
Martin Bašti 3eff1c5092
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
2020-09-03 08:01:56 +02:00
.github TLS naming: fix more Winssl and Darwinssl leftovers 2020-08-08 00:19:21 +02:00
.muse CI: Add muse CI config 2020-08-04 09:52:52 +02:00
CMake content_encoding: add zstd decoding support 2020-07-12 18:11:37 +02:00
docs win32: drop support for WinSock version 1, require version 2 2020-09-02 16:30:39 +02:00
include tls: add CURLOPT_SSL_EC_CURVES and --curves 2020-08-30 17:24:04 +02:00
lib http_proxy: do not crash with HTTPS_PROXY and NO_PROXY set 2020-09-03 08:01:56 +02:00
m4 configure: allow disabling warnings 2020-07-17 09:35:16 +02:00
packages TLS naming: fix more Winssl and Darwinssl leftovers 2020-08-08 00:19:21 +02:00
plan9 copyright: fix out-of-date copyright ranges and missing headers 2020-03-24 15:05:59 +01:00
projects win32: Add Curl_verify_windows_version() to curlx 2020-08-02 17:58:44 +02:00
scripts travis: add a CI job with openssl3 (from git master) 2020-09-03 07:57:20 +02:00
src tls: add CURLOPT_SSL_EC_CURVES and --curves 2020-08-30 17:24:04 +02:00
tests hash: make it 'struct Curl_hash' 2020-09-02 22:41:58 +02:00
winbuild winbuild/README.md: make <options> visible 2020-08-26 15:57:04 +02:00
.azure-pipelines.yml CI/azure: MQTT is now enabled by default 2020-09-02 16:24:39 +02:00
.cirrus.yml cirrus-ci: upgrade 11-STABLE to 11.4 2020-07-11 02:42:54 -04:00
.dcignore .dcignore: ignore tests and docs directories 2020-06-27 00:07:37 +02:00
.dir-locals.el copyright: fix out-of-date copyright ranges and missing headers 2020-03-24 15:05:59 +01:00
.gitattributes .gitattributes: make tabs in indentation a visible error 2018-12-06 20:21:17 +01:00
.gitignore .gitignore: add directory containing the stats repo 2020-06-05 19:54:34 +02:00
.lgtm.yml copyright: fix out-of-date copyright ranges and missing headers 2020-03-24 15:05:59 +01:00
.mailmap mailmap: Nicolas Sterchele 2020-06-12 13:41:52 +02:00
.travis.yml travis: add a CI job with openssl3 (from git master) 2020-09-03 07:57:20 +02:00
acinclude.m4 build: fixed build for systems with select() in unistd.h 2020-03-31 10:59:06 +02:00
appveyor.yml AppVeyor: switch 64-bit Schannel Debug CMake builds to Unicode 2020-08-29 10:01:22 +02:00
buildconf buildconf: exec autoreconf to avoid additional process 2020-08-29 21:43:49 +02:00
buildconf.bat copyrights: update all copyright notices to 2019 on files changed this year 2019-11-02 23:15:56 +01:00
CHANGES CHANGES: spell fix, use correct path to script 2017-02-07 08:22:37 +01:00
CMakeLists.txt mqtt: enable by default 2020-08-31 09:45:09 +02:00
configure.ac mqtt: enable by default 2020-08-31 09:45:09 +02:00
COPYING COPYING: it's 2020! 2020-01-03 15:12:46 +01:00
curl-config.in curl-config: ignore REQUIRE_LIB_DEPS in --libs output 2020-08-14 10:22:28 +02:00
GIT-INFO CHANGES.0: removed 2017-02-07 08:20:10 +01:00
libcurl.pc.in libcurl.pc: Merge Libs.private into Libs for static-only builds 2020-05-12 08:53:12 +02:00
MacOSX-Framework TLS naming: fix more Winssl and Darwinssl leftovers 2020-08-08 00:19:21 +02:00
Makefile.am winbuild: convert the instruction text to README.md 2020-08-26 15:49:21 +02:00
Makefile.dist build: remove the Borland specific makefiles 2018-06-02 11:23:40 +02:00
maketgz maketgz: delete .bak files, fix indentation 2018-06-15 23:28:34 +00:00
README docs: change "web site" to "website" 2020-08-17 00:14:18 +02:00
README.md docs: change "web site" to "website" 2020-08-17 00:14:18 +02:00
RELEASE-NOTES RELEASE-NOTES: synced 2020-08-31 09:54:52 +02:00
SECURITY.md SECURITY.md: minor rephrase 2020-03-30 08:53:25 +02:00

curl logo

CII Best Practices Coverity passed Travis-CI Build Status AppVeyor Build Status Azure DevOps Build Status Cirrus Build Status Backers on Open Collective Sponsors on Open Collective Language Grade: C/C++ Codacy Badge Fuzzing Status

Curl is a command-line tool for transferring data specified with URL syntax. Find out how to use curl by reading the curl.1 man page or the MANUAL document. Find out how to install Curl by reading the INSTALL document.

libcurl is the library curl is using to do its job. It is readily available to be used by your software. Read the libcurl.3 man page to learn how!

You can find answers to the most frequent questions we get in the FAQ document.

Study the COPYING file for distribution terms and similar. If you distribute curl binaries or other binaries that involve libcurl, you might enjoy the LICENSE-MIXING document.

Contact

If you have problems, questions, ideas or suggestions, please contact us by posting to a suitable mailing list.

All contributors to the project are listed in the THANKS document.

Website

Visit the curl website for the latest news and downloads.

Git

To download the very latest source from the Git server do this:

git clone https://github.com/curl/curl.git

(you'll get a directory named curl created, filled with the source code)

Security problems

Report suspected security problems via our HackerOne page and not in public!

Notice

Curl contains pieces of source code that is Copyright (c) 1998, 1999 Kungliga Tekniska Högskolan. This notice is included here to comply with the distribution terms.

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]