aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVladimir Homutov <vl@nginx.com>2022-02-09 15:53:21 +0300
committerVladimir Homutov <vl@nginx.com>2022-02-09 15:53:21 +0300
commit72d0668627ae2ee8a8d33d9d9e65ebc5c11e1e38 (patch)
tree1396e057240ce7380e432b10ed290a03b7fa1fa8 /src
parent90b19bf65de489d7f729c2876ff5cd63670111f9 (diff)
downloadnginx-72d0668627ae2ee8a8d33d9d9e65ebc5c11e1e38.tar.gz
nginx-72d0668627ae2ee8a8d33d9d9e65ebc5c11e1e38.zip
QUIC: fixed output context restoring.
The cd8018bc81a5 fixed unintended send of non-padded initial packets, but failed to restore context properly: only processed contexts need to be restored. As a consequence, a packet number could be restored from uninitialized value.
Diffstat (limited to 'src')
-rw-r--r--src/event/quic/ngx_event_quic_output.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/event/quic/ngx_event_quic_output.c b/src/event/quic/ngx_event_quic_output.c
index ebfe0cfc2..72a678c3d 100644
--- a/src/event/quic/ngx_event_quic_output.c
+++ b/src/event/quic/ngx_event_quic_output.c
@@ -165,7 +165,7 @@ ngx_quic_create_datagrams(ngx_connection_t *c)
if (min > len) {
/* padding can't be applied - avoid sending the packet */
- for (i = 0; i < NGX_QUIC_SEND_CTX_LAST; i++) {
+ while (i-- > 0) {
ctx = &qc->send_ctx[i];
ngx_quic_revert_send(c, ctx, preserved_pnum[i]);
}