]> granicus.if.org Git - icinga2/commitdiff
Fix another deadlock in TlsStream
authorGunnar Beutner <gunnar@beutner.name>
Fri, 17 Oct 2014 18:56:22 +0000 (20:56 +0200)
committerGunnar Beutner <gunnar@beutner.name>
Fri, 17 Oct 2014 18:56:22 +0000 (20:56 +0200)
lib/base/tlsstream.cpp

index 2cb420787644b51136e0405d6ab78f712001e1b2..a7664821bb8d5da2ded98bfb30fe1548a7400160 100644 (file)
@@ -161,14 +161,7 @@ size_t TlsStream::Read(void *buffer, size_t count)
        std::ostringstream msgbuf;
        char errbuf[120];
 
-       bool want_read;
-
-       {
-               boost::mutex::scoped_lock lock(m_SSLLock);
-               want_read = SSL_want_read(m_SSL.get());
-       }
-
-       if (want_read)
+       if (SSL_want_read(m_SSL.get()))
                m_Socket->Poll(true, false);
 
        boost::mutex::scoped_lock alock(m_IOActionLock);
@@ -225,12 +218,7 @@ void TlsStream::Write(const void *buffer, size_t count)
 
        bool want_write;
 
-       {
-               boost::mutex::scoped_lock lock(m_SSLLock);
-               want_write = SSL_want_write(m_SSL.get());
-       }
-
-       if (want_write)
+       if (SSL_want_write(m_SSL.get()))
                m_Socket->Poll(false, true);
 
        boost::mutex::scoped_lock alock(m_IOActionLock);