Client use class HXBaseComm : ACE_Svc_Handler<ACE_SSL_SOCK_Stream, ACE_MT_SYNCH>
Server use ClientAcceptor = ACE_Acceptor<ClientBridge, ACE_SSL_SOCK_Acceptor>
When a client connected with server, it was forced close the server will receive a SSL_ERROR_SYSCALL.The Server should
destory the session connect with "handle_close()". But the functions call ACE_Svc_Handler::shutdown()->ACE_SSL_SOCK_Stream::close()->::SSL_shutdown (this->ssl_) will make crash. The function ::SSL_shutdown (this->ssl_) is called in SSL_SOCK_Stream.inl line 319.
In openssl [(https://www.openssl.org/docs/man1.1.0/man3/SSL_get_error.html)] SSL_ERROR_SYSCALLSSL_shutdown() must not be called.
Version
6.5.9
centos [8.2]
gcc 10.2
The problem effects:
crash
Description
Client use
class HXBaseComm : ACE_Svc_Handler<ACE_SSL_SOCK_Stream, ACE_MT_SYNCH>
Server useClientAcceptor = ACE_Acceptor<ClientBridge, ACE_SSL_SOCK_Acceptor>
When a client connected with server, it was forced close the server will receive a
SSL_ERROR_SYSCALL
.The Server should destory the session connect with "handle_close()". But the functions callACE_Svc_Handler::shutdown()->ACE_SSL_SOCK_Stream::close()->::SSL_shutdown (this->ssl_)
will make crash. The function::SSL_shutdown (this->ssl_)
is called inSSL_SOCK_Stream.inl line 319
. In openssl [(https://www.openssl.org/docs/man1.1.0/man3/SSL_get_error.html)]SSL_ERROR_SYSCALL
SSL_shutdown()
must not be called.