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.
This commit is contained in:
parent
49e955c402
commit
69441d941a
1 changed files with 3 additions and 4 deletions
|
@ -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_connection_t *c, *pc;
|
||||||
ngx_http_request_t *r;
|
ngx_http_request_t *r;
|
||||||
ngx_http_log_ctx_t *ctx;
|
ngx_http_log_ctx_t *ctx;
|
||||||
ngx_http_connection_t *hc;
|
ngx_http_connection_t *hc, *phc;
|
||||||
ngx_http_v3_session_t *h3c;
|
|
||||||
ngx_http_core_srv_conf_t *cscf;
|
ngx_http_core_srv_conf_t *cscf;
|
||||||
|
|
||||||
pc = pr->connection;
|
pc = pr->connection;
|
||||||
|
@ -858,8 +857,8 @@ ngx_http_v3_create_push_request(ngx_http_request_t *pr, ngx_str_t *path,
|
||||||
goto failed;
|
goto failed;
|
||||||
}
|
}
|
||||||
|
|
||||||
h3c = ngx_http_v3_get_session(c);
|
phc = ngx_http_quic_get_connection(pc);
|
||||||
ngx_memcpy(hc, h3c, sizeof(ngx_http_connection_t));
|
ngx_memcpy(hc, phc, sizeof(ngx_http_connection_t));
|
||||||
c->data = hc;
|
c->data = hc;
|
||||||
|
|
||||||
ctx = ngx_palloc(c->pool, sizeof(ngx_http_log_ctx_t));
|
ctx = ngx_palloc(c->pool, sizeof(ngx_http_log_ctx_t));
|
||||||
|
|
Loading…
Reference in a new issue