From 2adfcb56fe682ca01988cdd8e11eced14fa49f27 Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Wed, 11 May 2016 10:09:54 +0200 Subject: [PATCH] Improve error handling for TlsStream::Handshake fixes #11046 --- lib/base/tlsstream.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/base/tlsstream.cpp b/lib/base/tlsstream.cpp index 93a7501a5..c4074eaa0 100644 --- a/lib/base/tlsstream.cpp +++ b/lib/base/tlsstream.cpp @@ -268,9 +268,12 @@ void TlsStream::Handshake(void) m_CurrentAction = TlsActionHandshake; ChangeEvents(POLLOUT); - while (!m_HandshakeOK && !m_ErrorOccurred) + while (!m_HandshakeOK && !m_ErrorOccurred && !m_Eof) m_CV.wait(lock); + if (m_Eof) + BOOST_THROW_EXCEPTION(std::runtime_error("Socket was closed during TLS handshake.")); + HandleError(); } -- 2.40.0