Summary: | Crash on closing compose-window which is prompting for passphrase | ||
---|---|---|---|
Product: | [Unmaintained] kmail | Reporter: | Remco <rkj> |
Component: | general | Assignee: | kdepim bugs <kdepim-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | crash | ||
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Gentoo Packages | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | backtrace |
Description
Remco
2005-09-29 18:34:58 UTC
Does the problem still exist in KDE 3.5? Do you get a backtrace? Created attachment 17829 [details]
backtrace
The backtrace I got. Unfortunately I don't have debugging symbols compiled in.
The problem is still existent in KDE 3.5. I've attached the backtrace to this issue, but I don't think it's very informative. Please paste the first ~10 calls from backtraces, as it allows the "search for similar crashes" feature to work. Thanks! #4 0xb583587c in MessageComposer::composeMessage () from /usr/kde/3.5/lib/libkmailprivate.so #5 0xb58331cc in MessageComposer::composeMessage () from /usr/kde/3.5/lib/libkmailprivate.so #6 0xb583bd92 in ComposeMessageJob::execute () from /usr/kde/3.5/lib/libkmailprivate.so #7 0xb582e78c in MessageComposer::slotDoNextJob () from /usr/kde/3.5/lib/libkmailprivate.so #8 0xb583ae93 in MessageComposer::qt_invoke () from /usr/kde/3.5/lib/libkmailprivate.so #9 0xb6749593 in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3 #10 0xb6a7d4d8 in QSignal::signal () from /usr/qt/3/lib/libqt-mt.so.3 #11 0xb676312f in QSignal::activate () from /usr/qt/3/lib/libqt-mt.so.3 #12 0xb676a7d3 in QSingleShotTimer::event () from /usr/qt/3/lib/libqt-mt.so.3 #13 0xb66ee07c in QApplication::internalNotify () from /usr/qt/3/lib/libqt-mt.so.3 #14 0xb66ed41d in QApplication::notify () from /usr/qt/3/lib/libqt-mt.so.3 #15 0xb6d349d2 in KApplication::notify () from /usr/kde/3.5/lib/libkdecore.so.4 #16 0xb66ddb09 in QEventLoop::activateTimers () from /usr/qt/3/lib/libqt-mt.so.3 Only happens when gpg-agent is not used. With gpg-agent, the composer window is disabled. SVN commit 645446 by wstephens: Disallow closing the composer window whilst performing a sign operation, this causes a crash when using the non-gpg-agent PGP backend. BUG: 113580 M +2 -0 kmcomposewin.cpp M +4 -3 messagecomposer.cpp M +2 -0 messagecomposer.h --- branches/KDE/3.5/kdepim/kmail/kmcomposewin.cpp #645445:645446 @@ -2055,6 +2055,8 @@ return false; if ( kmkernel->shuttingDown() || kapp->sessionSaving() ) return true; + if ( mComposer && mComposer->isPerformingSignOperation() ) // since the non-gpg-agent gpg plugin gets a passphrase using QDialog::exec() + return false; // the user can try to close the window, which destroys mComposer mid-call. if ( isModified() ) { bool istemplate = ( mFolder!=0 && mFolder->isTemplates() ); --- branches/KDE/3.5/kdepim/kmail/messagecomposer.cpp #645445:645446 @@ -287,7 +287,7 @@ MessageComposer::MessageComposer( KMComposeWin* win, const char* name ) : QObject( win, name ), mComposeWin( win ), mCurrentJob( 0 ), - mKeyResolver( 0 ), mIdentityUid( 0 ) + mKeyResolver( 0 ), mIdentityUid( 0 ), mPerformingSignOperation( false ) { } @@ -1590,9 +1590,10 @@ } if ( doSignBody ) { - + mPerformingSignOperation = true; // this lets the KMComposeWin know if it is safe to close the window. pgpSignedMsg( mEncodedBody, format ); - + mPerformingSignOperation = false; + if ( mSignature.isEmpty() ) { kdDebug() << "signature was empty" << endl; mRc = false; --- branches/KDE/3.5/kdepim/kmail/messagecomposer.h #645445:645446 @@ -92,6 +92,7 @@ return mMessageList; } + bool isPerformingSignOperation() const { return mPerformingSignOperation; } signals: void done( bool ); @@ -273,6 +274,7 @@ QValueList<MessageComposerJob*> mJobs; bool mEncryptWithChiasmus; + bool mPerformingSignOperation; }; #endif /* MESSAGECOMPOSER_H */ |