]> git.kaiwu.me - nginx.git/commit
SSL: fixed ngx_ssl_recv() to reset c->read->ready after errors.
authorMaxim Dounin <mdounin@mdounin.ru>
Thu, 1 Dec 2022 01:22:31 +0000 (04:22 +0300)
committerMaxim Dounin <mdounin@mdounin.ru>
Thu, 1 Dec 2022 01:22:31 +0000 (04:22 +0300)
commit39892c6265bb36604bbcbd5e315ec3ee0e91c277
treeb3acecb7ed1fe8aa8710a2c2b61655406c10b6e7
parenta77cef0995fb29af6602dcdeb560755443cb2cca
SSL: fixed ngx_ssl_recv() to reset c->read->ready after errors.

With this change, behaviour of ngx_ssl_recv() now matches ngx_unix_recv(),
which used to always reset c->read->ready to 0 when returning errors.

This fixes an infinite loop in unbuffered SSL proxying if writing to the
client is blocked and an SSL error happens (ticket #2418).

With this change, the fix for a similar issue in the stream module
(6868:ee3645078759), which used a different approach of explicitly
testing c->read->error instead, is no longer needed and was reverted.
src/event/ngx_event_openssl.c
src/stream/ngx_stream_proxy_module.c