Browse Source

Deadlock when TLS connection is lost

(cherry picked from commit 5d68c005f1afa06b3b2e2398fa5116d6fa7044f3)

Source commit: 039d83268863d71e0dc1173df6a31967d1a1b1c4
Martin Prikryl 4 years ago
parent
commit
a7ad3b7d63
2 changed files with 2 additions and 2 deletions
  1. 1 1
      source/filezilla/AsyncSocketExLayer.h
  2. 1 1
      source/filezilla/AsyncSslSocketLayer.cpp

+ 1 - 1
source/filezilla/AsyncSocketExLayer.h

@@ -118,6 +118,7 @@ protected:
   int SendNext(const void * lpBuf, int nBufLen, int nFlags = 0);
 
   CAsyncSocketEx *m_pOwnerSocket;
+  int m_nCriticalError;
 
   // Calls OnLayerCallback on owner socket
   int DoLayerCallback(int nType, int nParam1, int nParam2, char * str = 0);
@@ -154,7 +155,6 @@ private:
   void CallEvent(int nEvent, int nErrorCode);
 
   int m_nPendingEvents;
-  int m_nCriticalError;
 
   void Init(CAsyncSocketExLayer * pPrevLayer, CAsyncSocketEx * pOwnerSocket);
   CAsyncSocketExLayer * AddLayer(CAsyncSocketExLayer * pLayer, CAsyncSocketEx * pOwnerSocket);

+ 1 - 1
source/filezilla/AsyncSslSocketLayer.cpp

@@ -606,7 +606,7 @@ int CAsyncSslSocketLayer::Receive(void* lpBuf, int nBufLen, int nFlags)
 
 void CAsyncSslSocketLayer::Close()
 {
-  if (!m_nShutDown && m_bSslEstablished)
+  if (!m_nShutDown && m_bSslEstablished && !m_nCriticalError)
   {
     ShutDown();
     while (!ShutDownComplete())