Latest update - GitHub e3a9b6a

This commit is contained in:
2024-12-28 21:49:18 +09:00
parent 86951937fd
commit aea1e5e5d6
4 changed files with 20 additions and 8 deletions
+1 -2
View File
@@ -69,8 +69,7 @@ limiting, or buffer size configurations, or applying changes is impractical.
Availability issues excluded from the security release process: Availability issues excluded from the security release process:
- Local file content or upstream response content resulting only in worker - Local file content or upstream response content resulting only in worker
process termination. process termination.
- Issues with experimental features which result only in worker process - Issues with experimental features which result only in availability impact.
termination.
## Trusted Configurations and Misconfigurations ## Trusted Configurations and Misconfigurations
+1 -1
View File
@@ -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 * After receiving a 1-RTT packet, servers MUST discard
* 0-RTT keys within a short time * 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) { if (qc->closing) {
+13 -5
View File
@@ -174,7 +174,7 @@ ngx_int_t
ngx_quic_close_streams(ngx_connection_t *c, ngx_quic_connection_t *qc) ngx_quic_close_streams(ngx_connection_t *c, ngx_quic_connection_t *qc)
{ {
ngx_pool_t *pool; ngx_pool_t *pool;
ngx_queue_t *q; ngx_queue_t *q, posted_events;
ngx_rbtree_t *tree; ngx_rbtree_t *tree;
ngx_connection_t *sc; ngx_connection_t *sc;
ngx_rbtree_node_t *node; ngx_rbtree_node_t *node;
@@ -197,6 +197,8 @@ ngx_quic_close_streams(ngx_connection_t *c, ngx_quic_connection_t *qc)
return NGX_OK; return NGX_OK;
} }
ngx_queue_init(&posted_events);
node = ngx_rbtree_min(tree->root, tree->sentinel); node = ngx_rbtree_min(tree->root, tree->sentinel);
while (node) { while (node) {
@@ -213,15 +215,21 @@ ngx_quic_close_streams(ngx_connection_t *c, ngx_quic_connection_t *qc)
} }
sc->read->error = 1; sc->read->error = 1;
sc->read->ready = 1;
sc->write->error = 1; sc->write->error = 1;
sc->write->ready = 1;
ngx_quic_set_event(sc->read);
ngx_quic_set_event(sc->write);
sc->close = 1; sc->close = 1;
sc->read->handler(sc->read);
if (sc->read->posted) {
ngx_delete_posted_event(sc->read);
}
ngx_post_event(sc->read, &posted_events);
} }
ngx_event_process_posted((ngx_cycle_t *) ngx_cycle, &posted_events);
if (tree->root == tree->sentinel) { if (tree->root == tree->sentinel) {
return NGX_OK; return NGX_OK;
} }
@@ -295,6 +295,11 @@ ngx_quic_parse_packet(ngx_quic_header_t *pkt)
return NGX_ERROR; return NGX_ERROR;
} }
if (pkt->version == 0) {
/* version negotiation */
return NGX_ERROR;
}
if (!ngx_quic_supported_version(pkt->version)) { if (!ngx_quic_supported_version(pkt->version)) {
return NGX_ABORT; return NGX_ABORT;
} }