mirror of
https://github.com/nginx/nginx.git
synced 2025-08-06 14:56:15 +08:00
Stream: fixed segfault when using SSL certificates with variables.
Similar to the previous change, a segmentation fault occurres when evaluating SSL certificates on a QUIC connection due to an uninitialized stream session. The fix is to adjust initializing the QUIC part of a connection until after it has session and variables initialized. Similarly, this appends logging error context for QUIC connections: - client 127.0.0.1:54749 connected to 127.0.0.1:8880 while handling frames - quic client timed out (60: Operation timed out) while handling quic input
This commit is contained in:
parent
dab6035d68
commit
3c31d3f421
@ -115,23 +115,6 @@ ngx_stream_init_connection(ngx_connection_t *c)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if (NGX_STREAM_QUIC)
|
|
||||||
|
|
||||||
if (addr_conf->quic) {
|
|
||||||
ngx_quic_conf_t *qcf;
|
|
||||||
|
|
||||||
if (c->quic == NULL) {
|
|
||||||
c->log->connection = c->number;
|
|
||||||
|
|
||||||
qcf = ngx_stream_get_module_srv_conf(addr_conf->ctx,
|
|
||||||
ngx_stream_quic_module);
|
|
||||||
ngx_quic_run(c, qcf);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
s = ngx_pcalloc(c->pool, sizeof(ngx_stream_session_t));
|
s = ngx_pcalloc(c->pool, sizeof(ngx_stream_session_t));
|
||||||
if (s == NULL) {
|
if (s == NULL) {
|
||||||
ngx_stream_close_connection(c);
|
ngx_stream_close_connection(c);
|
||||||
@ -194,6 +177,21 @@ ngx_stream_init_connection(ngx_connection_t *c)
|
|||||||
s->start_sec = tp->sec;
|
s->start_sec = tp->sec;
|
||||||
s->start_msec = tp->msec;
|
s->start_msec = tp->msec;
|
||||||
|
|
||||||
|
#if (NGX_STREAM_QUIC)
|
||||||
|
|
||||||
|
if (addr_conf->quic) {
|
||||||
|
ngx_quic_conf_t *qcf;
|
||||||
|
|
||||||
|
if (c->quic == NULL) {
|
||||||
|
qcf = ngx_stream_get_module_srv_conf(addr_conf->ctx,
|
||||||
|
ngx_stream_quic_module);
|
||||||
|
ngx_quic_run(c, qcf);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
rev = c->read;
|
rev = c->read;
|
||||||
rev->handler = ngx_stream_session_handler;
|
rev->handler = ngx_stream_session_handler;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user