File bnc730047_fix_kontact_crash_on_exit.diff of Package kdepim4.openSUSE_12.1

Subject: Fix kontact crash on exit
From: Allen Winter <allen.winter@kdab.com>
Signed-Off-By: Christian Trippe <ctrippe@opensuse.org>
Bug: bnc#730047
Patch-upstream: kde >= 4.7.4

commit c0659da0186a637ba62ff0449e0d0f77d84b4170
Author: Allen Winter <allen.winter@kdab.com>
Date:   Sat Nov 12 09:36:57 2011 -0500

    Backport:
    In slotSendQueued() and slotSendQueuedVia(), make sure msgSender()
    is non-empty to prevent crashes.
    
    In slotSendQueuedVia(), make sure the availTransports list isn't empty
    to prevent crashes.
    
    CCBUG: 280649
    FIXED-IN: 4.7.4

diff --git a/kmail/kmmainwidget.cpp b/kmail/kmmainwidget.cpp
index faff305..877d92a 100644
--- a/kmail/kmmainwidget.cpp
+++ b/kmail/kmmainwidget.cpp
@@ -2476,7 +2476,9 @@ void KMMainWidget::slotSendQueued()
     return;
   }
 
-  kmkernel->msgSender()->sendQueued();
+  if ( kmkernel->msgSender() ) {
+    kmkernel->msgSender()->sendQueued();
+  }
 }
 
 //-----------------------------------------------------------------------------
@@ -2487,8 +2489,11 @@ void KMMainWidget::slotSendQueuedVia( QAction* item )
   }
 
   const QStringList availTransports= MailTransport::TransportManager::self()->transportNames();
-  if (availTransports.contains(item->text()))
-    kmkernel->msgSender()->sendQueued( item->text() );
+  if ( !availTransports.isEmpty() && availTransports.contains( item->text() ) ) {
+    if ( kmkernel->msgSender() ) {
+      kmkernel->msgSender()->sendQueued( item->text() );
+    }
+  }
 }
 
 //-----------------------------------------------------------------------------
openSUSE Build Service is sponsored by