From: Roman Arutyunyan Date: Tue, 18 May 2021 15:17:25 +0000 (+0300) Subject: HTTP/3: fixed server push after 9ec3e71f8a61. X-Git-Tag: release-1.25.0~4^2~329 X-Git-Url: http://git.kaiwu.me/postgresql/log/contrib/postgres_fdw/postgres_fdw.c?a=commitdiff_plain;h=66f736391ea5d0bc459c3f389a8cbfbb36fa9c86;p=nginx.git HTTP/3: fixed server push after 9ec3e71f8a61. When using server push, a segfault occured because ngx_http_v3_create_push_request() accessed ngx_http_v3_session_t object the old way. Prior to 9ec3e71f8a61, HTTP/3 session was stored directly in c->data. Now it's referenced by the v3_session field of ngx_http_connection_t. --- diff --git a/src/http/v3/ngx_http_v3_filter_module.c b/src/http/v3/ngx_http_v3_filter_module.c index ce0b478c2..93f3318cb 100644 --- a/src/http/v3/ngx_http_v3_filter_module.c +++ b/src/http/v3/ngx_http_v3_filter_module.c @@ -837,8 +837,7 @@ ngx_http_v3_create_push_request(ngx_http_request_t *pr, ngx_str_t *path, ngx_connection_t *c, *pc; ngx_http_request_t *r; ngx_http_log_ctx_t *ctx; - ngx_http_connection_t *hc; - ngx_http_v3_session_t *h3c; + ngx_http_connection_t *hc, *phc; ngx_http_core_srv_conf_t *cscf; pc = pr->connection; @@ -858,8 +857,8 @@ ngx_http_v3_create_push_request(ngx_http_request_t *pr, ngx_str_t *path, goto failed; } - h3c = ngx_http_v3_get_session(c); - ngx_memcpy(hc, h3c, sizeof(ngx_http_connection_t)); + phc = ngx_http_quic_get_connection(pc); + ngx_memcpy(hc, phc, sizeof(ngx_http_connection_t)); c->data = hc; ctx = ngx_palloc(c->pool, sizeof(ngx_http_log_ctx_t));