summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHugo Landau <hlandau@openssl.org>2024-04-04 12:58:02 +0100
committerHugo Landau <hlandau@openssl.org>2024-04-19 09:33:54 +0100
commit961d4f214e93043f96df32e288fb3ff0b8eee4d3 (patch)
treed2c75eb89358b4c37d0ef472d38e7d1f5078de28
parentfc8732e2f8025f8d620ee6c4b25ebe33f2af37c8 (diff)
QUIC APL: When creating a default XSO, no further streams can arrive after connection terminastion
Reviewed-by: Neil Horman <nhorman@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/24037)
-rw-r--r--ssl/quic/quic_impl.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/ssl/quic/quic_impl.c b/ssl/quic/quic_impl.c
index 51e419385b..f9289b5118 100644
--- a/ssl/quic/quic_impl.c
+++ b/ssl/quic/quic_impl.c
@@ -2050,9 +2050,12 @@ static int qc_wait_for_default_xso_for_read(QCTX *ctx, int peek)
if (peek)
return 0;
- if (!qctx_blocking(ctx))
+ if (ossl_quic_channel_is_term_any(qc->ch)) {
+ return QUIC_RAISE_NON_NORMAL_ERROR(ctx, SSL_R_PROTOCOL_IS_SHUTDOWN, NULL);
+ } else if (!qctx_blocking(ctx)) {
/* Non-blocking mode, so just bail immediately. */
return QUIC_RAISE_NORMAL_ERROR(ctx, SSL_ERROR_WANT_READ);
+ }
/* Block until we have a stream. */
wargs.qc = qc;