Bug 102407

Summary: aborted dcc send because of NAT crashes konversation when pressing Abort
Product: [Applications] konversation Reporter: Marco Menardi <mmenaz>
Component: generalAssignee: Konversation Developers <konversation-devel>
Status: RESOLVED FIXED    
Severity: crash    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Debian testing   
OS: Linux   
Latest Commit: Version Fixed In:
Attachments: backtrace of the crash

Description Marco Menardi 2005-03-24 22:59:13 UTC
Version:           konversation_0.15+2005.03.23-1_i386.deb (using KDE KDE 3.4.0)
Installed from:    Debian testing/unstable Packages
OS:                Linux

I'm behind a router with NAT. If someone tries to send me a file with dcc, the dcc tab shows up, and the dcc is displayed as aborted. If I then click the "Abort" button at the bottom of the window, the program crashes
Comment 1 Marco Menardi 2005-03-24 23:00:15 UTC
Created attachment 10331 [details]
backtrace of the crash
Comment 2 Peter Simonsson 2005-03-28 00:58:47 UTC
CVS commit by psn: 

Don't crash on abort before actually starting to receive

BUG:102407
CCMAIL:shin@shoegazed.org


  M +5 -2      dcctransferrecv.cpp   1.86


--- kdeextragear-2/konversation/konversation/dcctransferrecv.cpp  #1.85:1.86
@@ -170,5 +170,8 @@ void DccTransferRecv::abort()  // public
   kdDebug() << "DccTransferRecv::abort()" << endl;
   
+  if(m_writeCacheHandler) {
   m_writeCacheHandler->write( true ); // flush
+  }
+
   setStatus( Aborted );
   updateView();
Comment 3 Peter Simonsson 2010-07-01 16:01:18 UTC
commit a59933e6ee96d055d2ce49a18258c82d5b24d71b
Author: Peter Simonsson <peter.simonsson@gmail.com>
Date:   Sun Mar 27 22:58:38 2005 +0000

    Don't crash on abort before actually starting to receive
    
    BUG:102407
    CCMAIL:shin@shoegazed.org
    
    svn path=/trunk/kdeextragear-2/konversation/; revision=401140

diff --git a/konversation/dcctransferrecv.cpp b/konversation/dcctransferrecv.cpp
index 1fd799b..9af6bed 100644
--- a/konversation/dcctransferrecv.cpp
+++ b/konversation/dcctransferrecv.cpp
@@ -168,8 +168,11 @@ void DccTransferRecv::failed( const QString& errorMessage )
 void DccTransferRecv::abort()  // public slot
 {
   kdDebug() << "DccTransferRecv::abort()" << endl;
-  
-  m_writeCacheHandler->write( true ); // flush
+
+  if(m_writeCacheHandler) {
+    m_writeCacheHandler->write( true ); // flush
+  }
+
   setStatus( Aborted );
   updateView();
   cleanUp();