Go to file
Daniel Gustafsson f7aeff58a3 cookies: Fix potential NULL pointer deref with PSL
Curl_cookie_init can be called with data being NULL, and this can in turn
be passed to Curl_cookie_add, meaning that both functions must be careful
to only use data where it's checked for being a NULL pointer.  The libpsl
support code does however dereference data without checking, so if we are
indeed having an unset data pointer we cannot PSL check the cookiedomain.

This is currently not a reachable dereference, as the only caller with a
NULL data isn't passing a file to initialize cookies from, but since the
API has this contract let's ensure we hold it.

Closes #6731
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
2021-03-12 02:34:03 +01:00
.github CI: fix warning with the latest versions 2020-12-25 16:21:14 +01:00
.muse CI: Add muse CI config 2020-08-04 09:52:52 +02:00
CMake build: delete unused feature guards 2021-02-23 12:04:29 +00:00
docs retry.d: Clarify transient 5xx HTTP response codes 2021-03-12 03:16:22 -05:00
include http: add support to read and store the referrer header 2021-02-19 13:57:19 +00:00
lib cookies: Fix potential NULL pointer deref with PSL 2021-03-12 02:34:03 +01:00
m4 build: delete unused feature guards 2021-02-23 12:04:29 +00:00
packages gnutls: Fix nettle discovery 2021-02-25 18:20:33 +01:00
plan9 copyright: fix year ranges 2020-11-05 08:22:10 +01:00
projects projects: Update VS projects for OpenSSL 1.1.x 2021-03-03 18:32:24 -05:00
scripts travis: switch ngtcp2 build over to quictls 2021-03-11 22:49:50 +01:00
src tool_operate: bail if set CURLOPT_HTTP09_ALLOWED returns error 2021-03-11 22:45:20 +01:00
tests test220/314: adjust to run with Hyper 2021-03-11 22:45:27 +01:00
winbuild winbuild: remove docs from Makefiles and refer to README.md 2020-11-22 23:02:25 +01:00
.azure-pipelines.yml CI/azure: replace python-impacket with python3-impacket 2021-03-01 21:37:25 +01:00
.cirrus.yml ci: stop building on freebsd-12-1 2021-02-18 11:21:04 +00:00
.dcignore .dcignore: ignore tests and docs directories 2020-06-27 00:07:37 +02:00
.dir-locals.el curl.se: new home 2020-11-04 23:59:47 +01:00
.gitattributes gitattributes: Set batch files to CRLF line endings on checkout 2021-01-14 15:59:56 -05:00
.gitignore .gitignore: add directory containing the stats repo 2020-06-05 19:54:34 +02:00
.lgtm.yml curl.se: new home 2020-11-04 23:59:47 +01:00
.mailmap mailmap: Jon Rumsey 2021-02-05 08:46:11 +01:00
.travis.yml travis: install libgsasl-dev to add that to the builds 2021-02-12 09:45:34 +01:00
CHANGES curl.se: new home 2020-11-04 23:59:47 +01:00
CMakeLists.txt config: remove CURL_SIZEOF_CURL_OFF_T use only SIZEOF_CURL_OFF_T 2021-03-11 10:11:56 +01:00
COPYING COPYING/configure: bump copyright year range 2021-01-01 00:52:28 +01:00
GIT-INFO CHANGES.0: removed 2017-02-07 08:20:10 +01:00
MacOSX-Framework curl.se: new home 2020-11-04 23:59:47 +01:00
Makefile.am Revert "libcurl.pc: make it relocatable" 2020-11-09 09:13:06 +01:00
Makefile.dist curl.se: new home 2020-11-04 23:59:47 +01:00
README curl.se: new home 2020-11-04 23:59:47 +01:00
README.md curl.se: new home 2020-11-04 23:59:47 +01:00
RELEASE-NOTES RELEASE-NOTES: synced 2021-03-08 10:11:33 +01:00
SECURITY.md SECURITY.md: minor rephrase 2020-03-30 08:53:25 +02:00
acinclude.m4 language: s/behaviour/behavior/g 2021-01-02 23:35:59 +01:00
appveyor.yml curl.se: new home 2020-11-04 23:59:47 +01:00
buildconf buildconf: exec autoreconf to avoid additional process 2020-08-29 21:43:49 +02:00
buildconf.bat curl.se: new home 2020-11-04 23:59:47 +01:00
configure.ac configure: only add OpenSSL paths if they are defined 2021-03-12 09:45:10 +01:00
curl-config.in curl.se: new home 2020-11-04 23:59:47 +01:00
libcurl.pc.in Revert "libcurl.pc: make it relocatable" 2020-11-09 09:13:06 +01:00
maketgz copyright: fix year ranges 2020-11-05 08:22:10 +01:00

README.md

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.

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]