From bf6f592e36f207c90ff59aca61d3abbe2ef79285 Mon Sep 17 00:00:00 2001 From: "darin%netscape.com" Date: Sat, 8 Feb 2003 00:52:54 +0000 Subject: [PATCH] fixes bug 192272 "Mozilla crashed on Quit after attempting access to SSL IMAP account during DNS hang [@ nsInputStreamPump::EnsureWaiting]" r=sspitzer sr=bienvenu a=asa git-svn-id: svn://10.0.0.236/trunk@137571 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/mailnews/imap/src/nsImapProtocol.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/mozilla/mailnews/imap/src/nsImapProtocol.cpp b/mozilla/mailnews/imap/src/nsImapProtocol.cpp index 9c89ceeab8a..4efab86464c 100644 --- a/mozilla/mailnews/imap/src/nsImapProtocol.cpp +++ b/mozilla/mailnews/imap/src/nsImapProtocol.cpp @@ -961,7 +961,13 @@ NS_IMETHODIMP nsImapProtocol::Run() } me->m_runningUrl = nsnull; - me->m_transport = nsnull; + if (m_transport) + { + // make sure the transport closes (even if someone is still indirectly + // referencing it). + me->m_transport->Close(NS_ERROR_ABORT); + me->m_transport = nsnull; + } me->m_inputStream = nsnull; me->m_outputStream = nsnull; me->m_channelListener = nsnull; @@ -1069,8 +1075,10 @@ nsImapProtocol::TellThreadToDie(PRBool isSaveToClose) } } - if (m_pump) - m_pump->Cancel(NS_ERROR_ABORT); + // kill the socket connection + if (m_transport) + m_transport->Close(NS_ERROR_ABORT); + PR_EnterMonitor(m_threadDeathMonitor); m_threadShouldDie = PR_TRUE; PR_ExitMonitor(m_threadDeathMonitor);