Go to file
Daniel Gustafsson a6cdfd24ee cookies: Improve errorhandling for reading cookiefile
The existing programming had some issues with errorhandling for reading
the cookie file. If the file failed to open, we would silently ignore it
and continue as if there was no file (or stdin) passed. In this case, we
would also call fclose() on the NULL FILE pointer, which is undefined
behavior. Fix by ensuring that the FILE pointer is set before calling
fclose on it, and issue a warning in case the file cannot be opened.
Erroring out on nonexisting file would break backwards compatibility of
very old behavior so we can't really go there.

Closes: #8699
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
Reviewed-by: Jay Satiro <raysatiro@yahoo.com>
2022-04-20 14:17:29 +02:00
.circleci CI: Do not use buildconf. Instead, just use: autoreconf -fi 2022-03-15 14:15:35 +01:00
.github .github/workflows/macos.yml: add a libssh job with c-ares 2022-04-19 16:31:00 +02:00
.lift CI: Do not use buildconf. Instead, just use: autoreconf -fi 2022-03-15 14:15:35 +01:00
CMake msh3: add support for QUIC and HTTP/3 using msh3 2022-04-10 18:23:04 +02:00
docs libcurl-tutorial.3: spellfix and minor polish 2022-04-20 10:56:41 +02:00
include English: use American spelling consistently 2022-04-05 14:55:47 +02:00
lib cookies: Improve errorhandling for reading cookiefile 2022-04-20 14:17:29 +02:00
m4 configure: fix '--enable-code-coverage' typo 2022-02-10 16:13:43 +01:00
packages English: use American spelling consistently 2022-04-05 14:55:47 +02:00
plan9 copyright: fix year ranges 2020-11-05 08:22:10 +01:00
projects timediff.[ch]: add curlx helper functions for timeval conversions 2022-04-17 13:11:27 +02:00
scripts perl: removed a double semicolon at end of line 2022-04-14 13:55:32 +02:00
src timediff.[ch]: add curlx helper functions for timeval conversions 2022-04-17 13:11:27 +02:00
tests unit1620: call global_init before calling Curl_open 2022-04-20 02:26:43 -04:00
winbuild msh3: add support for QUIC and HTTP/3 using msh3 2022-04-10 18:23:04 +02:00
zuul.d GHA: move bearssl jobs over from zuul 2022-04-07 08:36:38 +02:00
.azure-pipelines.yml CI: Do not use buildconf. Instead, just use: autoreconf -fi 2022-03-15 14:15:35 +01:00
.cirrus.yml cirrus: add --enable-headers-api for some windows builds 2022-03-22 08:24:26 +01: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 tests: refactor server/socksd.c to support --unix-socket 2022-04-17 11:43:57 +02:00
.lgtm.yml CI: Do not use buildconf. Instead, just use: autoreconf -fi 2022-03-15 14:15:35 +01:00
.mailmap strcase.h: add comment about the return code 2022-03-31 11:35:27 +02:00
acinclude.m4 misc: fix a few issues on MidnightBSD 2021-10-05 08:35:24 +02:00
appveyor.yml appveyor: add Cygwin build 2022-04-11 08:27:31 +02: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
CHANGES curl.se: new home 2020-11-04 23:59:47 +01:00
CMakeLists.txt msh3: add support for QUIC and HTTP/3 using msh3 2022-04-10 18:23:04 +02:00
configure.ac msh3: add support for QUIC and HTTP/3 using msh3 2022-04-10 18:23:04 +02:00
COPYING COPYING: bump copyright year range 2022-01-05 23:14:15 +01:00
curl-config.in curl.se: new home 2020-11-04 23:59:47 +01:00
GIT-INFO GIT-INFO: rephrase to adapt to s/buildconf/autoreconf 2021-09-24 13:14:52 +02:00
libcurl.pc.in Revert "libcurl.pc: make it relocatable" 2020-11-09 09:13:06 +01:00
MacOSX-Framework MacOSX-Framework: remove redundant ';' 2021-10-15 08:08:14 +02:00
Makefile.am msh3: add support for QUIC and HTTP/3 using msh3 2022-04-10 18:23:04 +02:00
Makefile.dist netware: remove support 2022-01-31 13:40:26 +01:00
maketgz maketgz: return error if 'make dist' fails 2022-02-08 18:00:47 +01:00
mlc_config.json mlc_config.json: add file to ignore known troublesome URLs 2022-03-18 09:13:09 +01:00
README docs: reduce/avoid English contractions 2021-11-07 23:16:27 +01:00
README.md README: disable linkchecks for the sponsor links 2022-02-21 10:27:45 +01:00
RELEASE-NOTES RELEASE-NOTES: synced 2022-04-18 10:27:55 +02:00
SECURITY.md

curl logo

CII Best Practices Coverity passed AppVeyor Build Status Azure DevOps Build Status Cirrus Build Status Backers on Open Collective Sponsors on Open Collective Language Grade: C/C++ 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.

Commercial support

For commercial support, maybe private and dedicated help with your problems or applications using (lib)curl visit the support page.

Website

Visit the curl website for the latest news and downloads.

Git

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

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

(you will 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]

Open Collective Backers

Sponsors

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

Open Collective Sponsor 0 Open Collective Sponsor 1 Open Collective Sponsor 2 Open Collective Sponsor 3 Open Collective Sponsor 4 Open Collective Sponsor 5 Open Collective Sponsor 6 Open Collective Sponsor 7 Open Collective Sponsor 8 Open Collective Sponsor 9