curl/docs
Jay Satiro 7860f575fe dllmain: Call OpenSSL thread cleanup for Windows and Cygwin
- Call OPENSSL_thread_stop on thread termination (DLL_THREAD_DETACH)
  to prevent a memory leak in case OpenSSL is linked statically.

- Warn in libcurl-thread.3 that if OpenSSL is linked statically then it
  may require thread cleanup.

OpenSSL may need per-thread cleanup to stop a memory leak. For Windows
and Cygwin if libcurl was built as a DLL then we can do that for the
user by calling OPENSSL_thread_stop on thread termination. However, if
libcurl was built statically then we do not have notification of thread
termination and cannot do that for the user.

Also, there are several other unusual cases where it may be necessary
for the user to call OPENSSL_thread_stop, so in the libcurl-thread
warning I added a link to the OpenSSL documentation.

Co-authored-by: Viktor Szakats

Reported-by: southernedge@users.noreply.github.com
Reported-by: zmcx16@users.noreply.github.com

Ref: https://www.openssl.org/docs/man3.0/man3/OPENSSL_thread_stop.html#NOTES

Fixes https://github.com/curl/curl/issues/12327
Closes https://github.com/curl/curl/pull/12408
2024-04-24 04:04:25 -04:00
..
cmdline-opts version: add "ECH" as a feature 2024-04-16 13:24:08 +02:00
examples misc: fix typos 2024-04-11 15:44:22 +02:00
libcurl dllmain: Call OpenSSL thread cleanup for Windows and Cygwin 2024-04-24 04:04:25 -04:00
.gitignore docs: introduce "curldown" for libcurl man page format 2024-01-23 00:29:02 +01:00
ALTSVC.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
BINDINGS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
BUFQ.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
BUFREF.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
BUG-BOUNTY.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
BUGS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
CHECKSRC.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
CIPHERS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
CLIENT-READERS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
CLIENT-WRITERS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
CMakeLists.txt cmake: use namespaced custom target names 2024-04-09 21:20:54 +00:00
CODE_OF_CONDUCT.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
CODE_REVIEW.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
CODE_STYLE.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
CONNECTION-FILTERS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
CONTRIBUTE.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
curl-config.md curldown: Fix email address in Copyright 2024-02-28 11:28:10 +01:00
CURL-DISABLE.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
CURLDOWN.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
DEPRECATE.md NTLM_WB: drop support 2024-04-08 13:58:58 +02:00
DISTROS.md DISTROS: mark rolling release distros 2024-04-12 11:28:24 -07:00
DYNBUF.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
EARLY-RELEASE.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
ECH.md tidy-up: whitespace [ci skip] 2024-04-16 09:53:39 +02:00
EXPERIMENTAL.md TLS: add support for ECH (Encrypted Client Hello) 2024-04-16 08:10:53 +02:00
FAQ misc: fix typos 2024-04-11 15:44:22 +02:00
FEATURES.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
GOVERNANCE.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
HELP-US.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
HISTORY.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
HSTS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
HTTP2.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
HTTP3.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
HTTP-COOKIES.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
HYPER.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
INSTALL INSTALL: converted to markdown => INSTALL.md 2016-10-21 15:57:29 +02:00
INSTALL-CMAKE.md INSTALL-CMAKE.md: explain cmake -G <generator-name> 2024-04-01 18:51:06 -04:00
INSTALL.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
INTERNALS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
IPFS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
KNOWN_BUGS KNOWN_BUGS: POP3 issue when reading small chunks 2024-03-07 17:40:29 +01:00
MAIL-ETIQUETTE.md docs/MAIL-ETIQUETTE: convert to markdown 2024-03-31 15:32:27 +02:00
Makefile.am dist: add ECH files to tarball 2024-04-16 19:47:13 +02:00
MANUAL.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
mk-ca-bundle.md curldown: Fix email address in Copyright 2024-02-28 11:28:10 +01:00
MQTT.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
NEW-PROTOCOL.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
options-in-versions TLS: add support for ECH (Encrypted Client Hello) 2024-04-16 08:10:53 +02:00
PARALLEL-TRANSFERS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
README.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
RELEASE-PROCEDURE.md dmaketgz: release tarball generation using docker 2024-04-16 23:38:55 +02:00
ROADMAP.md ROADMAP: remove completed entries, mention websocket 2024-04-17 10:35:12 +02:00
RUSTLS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
SECURITY-ADVISORY.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
SPONSORS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
SSL-PROBLEMS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
SSLCERTS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
THANKS THANKS: new contributors from the 8.7.0 release 2024-03-27 07:46:15 +01:00
THANKS-filter THANKS-filter: name fixes 2024-04-17 09:48:45 +02:00
TheArtOfHttpScripting.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
TODO idn: add native AppleIDN (icucore) support for macOS/iOS 2024-04-17 00:24:09 +02:00
URL-SYNTAX.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
VERSIONS.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
VULN-DISCLOSURE-POLICY.md reuse: add copyright + license info to individual docs/*.md files 2024-03-31 12:01:18 +02:00
WEBSOCKET.md docs: use present tense 2024-02-27 09:47:21 +01:00

curl logo

Documentation

You find a mix of various documentation in this directory and subdirectories, using several different formats. Some of them are not ideal for reading directly in your browser.

If you would rather see the rendered version of the documentation, check out the curl website's documentation section for general curl stuff or the libcurl section for libcurl related documentation.