mirror of
https://github.com/curl/curl.git
synced 2026-05-10 21:46:19 +03:00
After merging #18228, I reviewed whether the clearing of the error queue may interfere with preceding code. Turns out there may be a preceding `SSL_Connect()` call. This patch replaces the previous fix of clearing the error queue with saving and restoring it in two functions which may be called between the connect call and the `SSL_get_error()` call following it: - `ossl_log_tls12_secret()` - `Curl_ssl_setup_x509_store()` The `ERR_set_mark()`, `ERR_pop_to_mark()` functions are present in all supported OpenSSL and LibreSSL versions. Also in BoringSSL since its initial commit. OpenSSL may modify its error queue in all API calls that can fail. Thanks-to: Viktor Dukhovni Ref: https://github.com/curl/curl/issues/18190#issuecomment-3167702142 Ref: https://github.com/curl/curl/issues/18190#issuecomment-3169211739 Ref: https://github.com/curl/curl/issues/18190#issuecomment-3169988050 Follow-up to |
||
|---|---|---|
| .. | ||
| .checksrc | ||
| cipher_suite.c | ||
| cipher_suite.h | ||
| gtls.c | ||
| gtls.h | ||
| hostcheck.c | ||
| hostcheck.h | ||
| keylog.c | ||
| keylog.h | ||
| mbedtls.c | ||
| mbedtls.h | ||
| mbedtls_threadlock.c | ||
| mbedtls_threadlock.h | ||
| openssl.c | ||
| openssl.h | ||
| rustls.c | ||
| rustls.h | ||
| schannel.c | ||
| schannel.h | ||
| schannel_int.h | ||
| schannel_verify.c | ||
| vtls.c | ||
| vtls.h | ||
| vtls_int.h | ||
| vtls_scache.c | ||
| vtls_scache.h | ||
| vtls_spack.c | ||
| vtls_spack.h | ||
| wolfssl.c | ||
| wolfssl.h | ||
| x509asn1.c | ||
| x509asn1.h | ||