mirror of
https://github.com/openssl/openssl.git
synced 2024-11-27 05:21:51 +08:00
c8127df04c
SSL_poll indicates that a stream which has had the fin bit set on it, should generate SSL_POLL_EVENT_R events, so that applications can detect stream completion via SSL_read_ex and SSL_get_error returning SSL_ERROR_ZERO_RETURN. However, the quic polling code misses on this, as a client that completely reads a buffer after receipt has its underlying stream buffer freed, loosing the fin status We can however detect stream completion still, as a stream which has been finalized, and had all its data read will be in the QUIC_RSTREAM_STATE_DATA_READ state, iff the fin bit was set. Fix it by checking in test_poll_event_r for that state, and generating a SSL_POLL_EVENT_R if its found to be true, so as to stay in line with the docs. Fixes openssl/private#627 Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Sasa Nedvedicky <sashan@openssl.org> (Merged from https://github.com/openssl/openssl/pull/25399) |
||
---|---|---|
.. | ||
quic | ||
record | ||
rio | ||
statem | ||
bio_ssl.c | ||
build.info | ||
d1_lib.c | ||
d1_msg.c | ||
d1_srtp.c | ||
methods.c | ||
pqueue.c | ||
priority_queue.c | ||
s3_enc.c | ||
s3_lib.c | ||
s3_msg.c | ||
ssl_asn1.c | ||
ssl_cert_comp.c | ||
ssl_cert_table.h | ||
ssl_cert.c | ||
ssl_ciph.c | ||
ssl_conf.c | ||
ssl_err_legacy.c | ||
ssl_err.c | ||
ssl_init.c | ||
ssl_lib.c | ||
ssl_local.h | ||
ssl_mcnf.c | ||
ssl_rsa_legacy.c | ||
ssl_rsa.c | ||
ssl_sess.c | ||
ssl_stat.c | ||
ssl_txt.c | ||
ssl_utst.c | ||
sslerr.h | ||
t1_enc.c | ||
t1_lib.c | ||
t1_trce.c | ||
tls13_enc.c | ||
tls_depr.c | ||
tls_srp.c |