[nginx] QUIC: fixed client request timeout in 0-RTT scenarios.

noreply at nginx.com noreply at nginx.com
Tue Dec 10 13:18:03 UTC 2024


details:   https://github.com/nginx/nginx/commit/930caed3bfc84e43bf4bd034150c17604dc5dc73
branches:  master
commit:    930caed3bfc84e43bf4bd034150c17604dc5dc73
user:      nandsky <lishu.zy at alibaba-inc.com>
date:      Mon, 25 Nov 2024 15:26:29 +0800
description:
QUIC: fixed client request timeout in 0-RTT scenarios.

Since 0-RTT and 1-RTT data exist in the same packet number space,
ngx_quic_discard_ctx incorrectly discards 1-RTT packets when
0-RTT keys are discarded.

The issue was introduced by 58b92177e7c3c50f77f807ab3846ad5c7bbf0ebe.

---
 src/event/quic/ngx_event_quic.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/event/quic/ngx_event_quic.c b/src/event/quic/ngx_event_quic.c
index c03b1d003..308597e27 100644
--- a/src/event/quic/ngx_event_quic.c
+++ b/src/event/quic/ngx_event_quic.c
@@ -1029,7 +1029,7 @@ ngx_quic_handle_payload(ngx_connection_t *c, ngx_quic_header_t *pkt)
          * After receiving a 1-RTT packet, servers MUST discard
          * 0-RTT keys within a short time
          */
-        ngx_quic_discard_ctx(c, ssl_encryption_early_data);
+        ngx_quic_keys_discard(qc->keys, ssl_encryption_early_data);
     }
 
     if (qc->closing) {


More information about the nginx-devel mailing list