openssl-quic: handle error in SSL_get_stream_read_error_code

The return code of SSL_get_stream_read_error_code() was not checked
in one location, but others. Make that consistent.

Reported in Joshua's sarif data

Closes #18725
This commit is contained in:
Stefan Eissing 2025-09-25 12:38:02 +02:00 committed by Daniel Stenberg
parent 887b863b00
commit ee2dd2d6cb
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2

View File

@ -1264,12 +1264,16 @@ static CURLcode h3_quic_recv(void *reader_ctx,
else if(SSL_get_stream_read_state(x->s->ssl) ==
SSL_STREAM_STATE_RESET_REMOTE) {
uint64_t app_error_code = NGHTTP3_H3_NO_ERROR;
SSL_get_stream_read_error_code(x->s->ssl, &app_error_code);
CURL_TRC_CF(x->data, x->cf, "[%" FMT_PRId64 "] h3_quic_recv -> RESET, "
"rv=%d, app_err=%" FMT_PRIu64,
x->s->id, rv, (curl_uint64_t)app_error_code);
if(app_error_code != NGHTTP3_H3_NO_ERROR) {
if(!SSL_get_stream_read_error_code(x->s->ssl, &app_error_code)) {
x->s->reset = TRUE;
return CURLE_RECV_ERROR;
}
else {
CURL_TRC_CF(x->data, x->cf, "[%" FMT_PRId64 "] h3_quic_recv -> RESET, "
"rv=%d, app_err=%" FMT_PRIu64,
x->s->id, rv, (curl_uint64_t)app_error_code);
if(app_error_code != NGHTTP3_H3_NO_ERROR)
x->s->reset = TRUE;
}
x->s->recvd_eos = TRUE;
return CURLE_OK;