]> git.kaiwu.me - nginx.git/commit
Upstream: introduced ngx_http_upstream_ssl_handshake_handler().
authorMaxim Dounin <mdounin@mdounin.ru>
Thu, 22 Jun 2017 18:09:06 +0000 (21:09 +0300)
committerMaxim Dounin <mdounin@mdounin.ru>
Thu, 22 Jun 2017 18:09:06 +0000 (21:09 +0300)
commit6433c841a0b66614e3ee448e14e1b32463c7106d
tree5024666c8d88b654294e032f077b71ca3d3e7b89
parentefa61f42c10355263fd883e53f3e690fe01770a0
Upstream: introduced ngx_http_upstream_ssl_handshake_handler().

This change reworks 13a5f4765887 to only run posted requests once,
with nothing on stack.  Running posted requests with other request
functions on stack may result in use-after-free in case of errors,
similar to the one reported in #788.

To only run posted request once, a separate function was introduced
to be used as ssl handshake handler in c->ssl->handler,
ngx_http_upstream_ssl_handshake_handler().  The ngx_http_run_posted_requests()
is only called in this function, and not in ngx_http_upstream_ssl_handshake()
which may be called directly on stack.

Additionaly, ngx_http_upstream_ssl_handshake_handler() now does appropriate
debug logging of the current subrequest, similar to what is done in other
event handlers.
src/http/ngx_http_upstream.c