1
0
mirror of https://github.com/moparisthebest/curl synced 2024-11-11 03:55:03 -05:00
Go to file
Jay Satiro eb36c03e83 memdebug: close debug logfile explicitly on exit
- Use atexit to register a dbg cleanup function that closes the logfile.

LeakSantizier (LSAN) calls _exit() instead of exit() when a leak is
detected on exit so the logfile must be closed explicitly or data could
be lost. Though _exit() does not call atexit handlers such as this,
LSAN's call to _exit() comes after the atexit handlers are called.

Prior to this change the logfile was not explicitly closed so it was
possible that if LSAN detected a leak and called _exit (which does
not flush or close files like exit) then the logfile could be missing
data. That could then cause curl's memanalyze to report false leaks
(eg a malloc was recorded to the logfile but the corresponding free was
discarded from the buffer instead of written to the logfile, then
memanalyze reports that as a leak).

Ref: https://github.com/google/sanitizers/issues/1374

Bug: https://github.com/curl/curl/pull/6591#issuecomment-780396541

Closes https://github.com/curl/curl/pull/6620
2021-02-20 14:40:24 -05: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 cmake: make CURL_ZLIB a tri-state variable 2020-11-19 13:38:47 +01:00
docs http: add new files missed from referrer commit 2021-02-19 16:18:15 +00:00
include http: add support to read and store the referrer header 2021-02-19 13:57:19 +00:00
lib memdebug: close debug logfile explicitly on exit 2021-02-20 14:40:24 -05:00
m4 configure: set -Wextra-semi-stmt for clang with --enable-debug 2020-12-29 23:02:43 +01:00
packages http: add support to read and store the referrer header 2021-02-19 13:57:19 +00:00
plan9 copyright: fix year ranges 2020-11-05 08:22:10 +01:00
projects copyright: fix year ranges 2020-11-05 08:22:10 +01:00
scripts travis: enable quiche's FFI feature 2021-02-01 13:13:12 +00:00
src http: add support to read and store the referrer header 2021-02-19 13:57:19 +00:00
tests http: add support to read and store the referrer header 2021-02-19 13:57:19 +00:00
winbuild winbuild: remove docs from Makefiles and refer to README.md 2020-11-22 23:02:25 +01:00
.azure-pipelines.yml curl.se: new home 2020-11-04 23:59:47 +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
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
CHANGES curl.se: new home 2020-11-04 23:59:47 +01:00
CMakeLists.txt copyright: fix missing year (range) updates 2021-01-29 14:35:13 +01:00
configure.ac gnutls: assume nettle crypto support 2021-02-18 23:06:47 +01:00
COPYING COPYING/configure: bump copyright year range 2021-01-01 00:52:28 +01:00
curl-config.in curl.se: new home 2020-11-04 23:59:47 +01:00
GIT-INFO CHANGES.0: removed 2017-02-07 08:20:10 +01:00
libcurl.pc.in Revert "libcurl.pc: make it relocatable" 2020-11-09 09:13:06 +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
maketgz copyright: fix year ranges 2020-11-05 08:22:10 +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-02-15 08:31:34 +01: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.

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]