<div dir="ltr"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Mar 23, 2020 at 6:05 PM Maxim Dounin <<a href="mailto:mdounin@mdounin.ru">mdounin@mdounin.ru</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello!<br>
<br>
On Mon, Mar 23, 2020 at 02:04:36PM +0300, Sergey Kandaurov wrote:<br>
<br>
> <br>
> > On 22 Mar 2020, at 21:39, itpp2012 <<a href="mailto:nginx-forum@forum.nginx.org" target="_blank">nginx-forum@forum.nginx.org</a>> wrote:<br>
> > <br>
> > How about this as this catches all 3 while conditions:<br>
> > <br>
> > +++ src/event/ngx_event_openssl.c<br>
> > @@ -2318,<br>
> > <br>
> >    c->ssl->no_wait_shutdown = 1;<br>
> >    c->ssl->no_send_shutdown = 1;<br>
> > <br>
> >    if (sslerr == SSL_ERROR_ZERO_RETURN || ERR_peek_error() == 0) {<br>
> >        ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, 0,<br>
> >                       "peer shutdown SSL cleanly");<br>
> >        return NGX_DONE;<br>
> >    }<br>
> > <br>
> > +    /* <a href="https://forum.nginx.org/read.php?2,287377" rel="noreferrer" target="_blank">https://forum.nginx.org/read.php?2,287377</a>  */<br>
> > +    /* <a href="https://github.com/openssl/openssl/issues/11381" rel="noreferrer" target="_blank">https://github.com/openssl/openssl/issues/11381</a>  */<br>
> > +#ifdef SSL_R_UNEXPECTED_EOF_WHILE_READING<br>
> > +    if (sslerr == SSL_ERROR_SSL && ERR_GET_REASON(ERR_peek_error())<br>
> > +                   == SSL_R_UNEXPECTED_EOF_WHILE_READING) {<br>
> > +        ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, 0,<br>
> > +                       "ssl3_read_n:unexpected eof while reading");<br>
> > +        return NGX_DONE;<br>
> > +    }<br>
> > +#endif<br>
> > +<br>
> >    ngx_ssl_connection_error(c, sslerr, err, "SSL_read() failed");<br>
> <br>
> How would this catch the reported error in SSL_do_handshake() ?<br>
> I'd replicate this check in ngx_ssl_handshake().<br>
> And probably for SSL_read_early_data, SSL_shutdown, SSL_peak,<br>
> (ok, we don't use SSL_peak), but this is a moot point.<br>
<br>
Given the session resumption issue[1], I tend to think the best <br>
solution for now is to recommend to avoid using OpenSSL 1.1.1e.<br>
<br>
[1] <a href="https://github.com/openssl/openssl/issues/11378" rel="noreferrer" target="_blank">https://github.com/openssl/openssl/issues/11378</a><br>
<br>
-- <br>
Maxim Dounin<br>
<a href="http://mdounin.ru/" rel="noreferrer" target="_blank">http://mdounin.ru/</a><br>
_______________________________________________<br>
nginx mailing list<br>
<a href="mailto:nginx@nginx.org" target="_blank">nginx@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx</a><br></blockquote><div><br></div><div style="font-family:monospace" class="gmail_default">Hi,<br><br>does<br><br>OpenSSL 1.1.1f.<br><br>fix the issue ?<br><br>thanks.<br><br>---<br>Lee</div></div></div>