Previously, when ngx_handle_read_event() or ngx_handle_write_event()
returned an error while handling an SMTP, POP3 or IMAP session, the
released session memory could be accessed after handling the error.
if (ngx_handle_read_event(c->read, 0) != NGX_OK) {
ngx_mail_close_connection(c);
+ return;
}
ngx_mail_send(c->write);
if (ngx_handle_read_event(c->read, 0) != NGX_OK) {
ngx_mail_close_connection(c);
+ return;
}
ngx_mail_send(c->write);
if (ngx_handle_write_event(wev, 0) != NGX_OK) {
ngx_mail_proxy_internal_server_error(s);
+ return;
}
if (c->read->ready) {
if (ngx_handle_read_event(c->read, 0) != NGX_OK) {
ngx_mail_close_connection(c);
+ return;
}
if (c->read->ready) {