mirror of
https://github.com/curl/curl.git
synced 2026-04-11 12:01:42 +08:00
wolfssl: fix handling of abrupt connection close
A closed connection without TLS notify shutdowns, has been reported as a correct EOF instead of an error. Fix the error handling in wolfSSL backend receive handling. Spotted by Codex Security Closes #21002
This commit is contained in:
parent
1eb9096897
commit
708b3f8b4e
@ -2017,13 +2017,13 @@ static CURLcode wssl_recv(struct Curl_cfilter *cf,
|
||||
case WOLFSSL_ERROR_NONE:
|
||||
case WOLFSSL_ERROR_WANT_READ:
|
||||
case WOLFSSL_ERROR_WANT_WRITE:
|
||||
if(!wssl->io_result && connssl->peer_closed) {
|
||||
CURL_TRC_CF(data, cf, "wssl_recv(len=%zu) -> CLOSED", blen);
|
||||
return CURLE_OK;
|
||||
if(!wssl->io_result && !connssl->peer_closed) {
|
||||
/* there is data pending, re-invoke wolfSSL_read() */
|
||||
CURL_TRC_CF(data, cf, "wssl_recv(len=%zu) -> AGAIN", blen);
|
||||
return CURLE_AGAIN;
|
||||
}
|
||||
/* there is data pending, re-invoke wolfSSL_read() */
|
||||
CURL_TRC_CF(data, cf, "wssl_recv(len=%zu) -> AGAIN", blen);
|
||||
return CURLE_AGAIN;
|
||||
/* fall through to default error handling below */
|
||||
FALLTHROUGH();
|
||||
default:
|
||||
if(wssl->io_result == CURLE_AGAIN) {
|
||||
CURL_TRC_CF(data, cf, "wssl_recv(len=%zu) -> AGAIN", blen);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user