]> granicus.if.org Git - icinga2/commitdiff
Fix race condition in AgentListener::NewClientHandler.
authorGunnar Beutner <gunnar.beutner@netways.de>
Sat, 12 Apr 2014 11:09:25 +0000 (13:09 +0200)
committerGunnar Beutner <gunnar.beutner@netways.de>
Sat, 12 Apr 2014 11:09:25 +0000 (13:09 +0200)
Refs #4865

components/agent/agentlistener.cpp

index 3d4675afa4fbf53fc67ae7364ddfaf28b21b4daf..469a9b95cb5963db3e98bf945a8a3cbc43c20a5c 100644 (file)
@@ -137,7 +137,13 @@ void AgentListener::NewClientHandler(const Socket::Ptr& client, TlsRole role)
 
        NetworkStream::Ptr netStream = make_shared<NetworkStream>(client);
 
-       TlsStream::Ptr tlsStream = make_shared<TlsStream>(netStream, role, m_SSLContext);
+       TlsStream::Ptr tlsStream;
+
+       {
+               ObjectLock olock(this);
+               tlsStream = make_shared<TlsStream>(netStream, role, m_SSLContext);
+       }
+
        tlsStream->Handshake();
 
        shared_ptr<X509> cert = tlsStream->GetPeerCertificate();