curl/.github/workflows
Aki a2bcec0ee0
openssl: fix the data race when sharing an SSL session between threads
The SSL_Session object is mutated during connection inside openssl,
and it might not be thread-safe. Besides, according to documentation
of openssl:

```
SSL_SESSION objects keep internal link information about the session
cache list, when being inserted into one SSL_CTX object's session
cache. One SSL_SESSION object, regardless of its reference count,
must therefore only be used with one SSL_CTX object (and the SSL
objects created from this SSL_CTX object).
```
If I understand correctly, it is not safe to share it even in a
single thread.

Instead, serialize the SSL_SESSION before adding it to the cache,
and deserialize it after retrieving it from the cache, so that no
concurrent write to the same object is infeasible.

Also
 - add a ci test for thread sanitizer
 - add a test for sharing ssl sessions concurrently
 - avoid redefining memory functions when not building libcurl, but
   including the soruce in libtest
 - increase the concurrent connections limit in sws

Notice that there are fix for a global data race for openssl which
is not yet release. The fix is cherry pick for the ci test with
thread sanitizer.
d8def79838

Closes #14751
2024-09-02 23:35:44 +02:00
..
appveyor-status.yml GHA: add yamlcheck 2024-08-23 18:42:55 +02:00
awslc.yml GHA: update CI dependencies 2024-08-25 23:39:02 +02:00
checkdocs.yml GHA: add yamlcheck 2024-08-23 18:42:55 +02:00
checksrc.yml CI: add a script and job to run cmakelint 2024-08-27 08:33:44 -07:00
codeql-analysis.yml GHA: update github/codeql-action digest to 4dd1613 2024-08-29 16:53:23 +02:00
configure-vs-cmake.yml GHA/configure-vs-cmake: drop disabling dependency tracking [ci skip] 2024-08-26 16:29:20 +02:00
curl-for-win.yml build: add poll() detection for cross-builds 2024-08-30 17:14:33 +02:00
cygwin.yml CI: add test timeouts, more cmake build tests, fix VS2010 C warning 2024-08-27 23:40:48 +02:00
distcheck.yml GHA: add yamlcheck 2024-08-23 18:42:55 +02:00
fuzz.yml GHA: add yamlcheck 2024-08-23 18:42:55 +02:00
hacktoberfest-accepted.yml GHA: add yamlcheck 2024-08-23 18:42:55 +02:00
http3-linux.yml GHA: update CI dependencies 2024-08-25 23:39:02 +02:00
label.yml GHA: add yamlcheck 2024-08-23 18:42:55 +02:00
linux32.yml GHA: add yamlcheck 2024-08-23 18:42:55 +02:00
linux-old.yml GHA: add yamlcheck 2024-08-23 18:42:55 +02:00
linux.yml openssl: fix the data race when sharing an SSL session between threads 2024-09-02 23:35:44 +02:00
macos.yml cmake: default CURL_DISABLE_LDAPS to the value of CURL_DISABLE_LDAP 2024-09-02 21:03:01 +02:00
non-native.yml GHA: add yamlcheck 2024-08-23 18:42:55 +02:00
torture.yml GHA: add yamlcheck 2024-08-23 18:42:55 +02:00
windows.yml autotools: settle with option name: --enable-windows-unicode 2024-09-01 18:43:28 +02:00
wolfssl.yml GHA: add yamlcheck 2024-08-23 18:42:55 +02:00