curl/lib/vtls
Jay Satiro 24d6c2889f schannel: fix hang on unexpected server close
- Treat TLS connection close (either due to a close_notify from the
  server or just closed due to receiving 0) as pending data.

This is because in some cases schannel_recv knows the connection is
closed but has to return actual pending data so it can't return 0 or an
error to indicate no more data. In this case schannel_recv must be
called again, which only happens if readwrite_data sees that there is
still pending data.

Prior to this change if the total size of the body that libcurl expected
to receive from the server was unknown then it was possible under some
network conditions that libcurl would hang waiting to receive more data,
when in fact a close_notify alert indicating no more data would be sent
was already processed.

Fixes https://github.com/curl/curl/issues/12894
Closes https://github.com/curl/curl/pull/12910
2024-02-13 03:45:21 -05:00
..
bearssl.c lib: reduce use of strncpy 2023-12-11 23:29:02 +01:00
bearssl.h
gtls.c gnutls: fix build with --disable-verbose 2023-12-16 22:06:21 +01:00
gtls.h vtls/vquic, keep peer name information together 2023-11-19 13:55:22 +01:00
hostcheck.c
hostcheck.h
keylog.c windows: use built-in _WIN32 macro to detect Windows 2023-11-22 15:42:25 +00:00
keylog.h
mbedtls_threadlock.c misc: fix -Walloc-size warnings 2023-11-11 23:35:47 +01:00
mbedtls_threadlock.h
mbedtls.c mbedtls: use mbedtls_ssl_conf_{min|max}_tls_version 2024-02-10 14:21:50 +01:00
mbedtls.h
openssl.c https-proxy: use IP address and cert with ip in alt names 2024-02-06 10:10:14 +01:00
openssl.h vtls: consistently use typedef names for OpenSSL structs 2023-12-01 23:00:43 +01:00
rustls.c build: enable missing OpenSSF-recommended warnings, with fixes 2023-12-16 13:12:37 +00:00
rustls.h
schannel_int.h schannel: add CA cache support for files and memory blobs 2023-11-11 04:11:11 -05:00
schannel_verify.c build: enable missing OpenSSF-recommended warnings, with fixes 2023-12-16 13:12:37 +00:00
schannel.c schannel: fix hang on unexpected server close 2024-02-13 03:45:21 -05:00
schannel.h
sectransp.c sectransp: do verify_cert without memdup for blobs 2024-01-10 23:22:52 +01:00
sectransp.h
vtls_int.h openssl: when a session-ID is reused, skip OCSP stapling 2023-11-28 22:59:10 +01:00
vtls.c ftp: tracing improvements 2024-02-08 23:14:33 +01:00
vtls.h vtls: remove the Curl_cft_ssl_proxy object if CURL_DISABLE_PROXY 2023-12-07 09:31:05 +01:00
wolfssl.c wolfssl: load certificate *chain* for PEM client certs 2024-01-06 11:24:11 +01:00
wolfssl.h
x509asn1.c x509asn1: switch from malloc to dynbuf 2024-01-27 12:27:35 +01:00
x509asn1.h