瀏覽代碼

Deadlock when TLS connection is lost

Source commit: 9561e7b58ff3a659c8eff1152efee28bf09d96e5
Martin Prikryl 4 年之前
父節點
當前提交
5d68c005f1
共有 2 個文件被更改,包括 2 次插入2 次删除
  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())