Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 113654 Details for
Bug 171346
[PATCH] kde-base/kmail-3.5.6-r1: Fixes for various crash and hang bugs
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
kmail-3.5.6-imap-crash-svn-631934.patch
kmail-3.5.6-imap-crash-svn-631934.patch (text/plain), 3.40 KB, created by
Peter Alfredsen (RETIRED)
on 2007-03-18 14:55:18 UTC
(
hide
)
Description:
kmail-3.5.6-imap-crash-svn-631934.patch
Filename:
MIME Type:
Creator:
Peter Alfredsen (RETIRED)
Created:
2007-03-18 14:55:18 UTC
Size:
3.40 KB
patch
obsolete
>http://websvn.kde.org/?view=rev&revision=631934 > >SVN commit 631934 by dfaure: > > Found the reason why KMAcctCachedImap::processNewMail's assert below was hit > assert( mFolder ); // George says "better to crash then lose mail" > The configuration dialog creates temporary copies of the account when modifying one; > but it doesn't delete that copy when closing with Cancel. What's more, the copied account > started its own timer for interval-mail-checking, and when that timer fired, KMAcctCachedImap > would crash due to mFolder=0. So: > 1) delete things in the dtor to avoid the account memleak > 2) don't start the mailcheck timer when simply setting the checkinterval of an account, > only when the account is added to the AccountManager for real. > BUG: 117935 > > > M +23 -2 configuredialog.cpp > M +2 -1 configuredialog_p.h > M +6 -6 kmaccount.cpp > >--- branches/KDE/3.5/kdepim/kmail/configuredialog.cpp 2007/02/08 19:54:29 631698 >+++ branches/KDE/3.5/kdepim/kmail/configuredialog.cpp 2007/02/09 15:10:36 631934 >@@ -1147,6 +1147,28 @@ > this, SLOT(slotEditNotifications()) ); > } > >+AccountsPageReceivingTab::~AccountsPageReceivingTab() >+{ >+ // When hitting Cancel or closing the dialog with the window-manager-button, >+ // we have a number of things to clean up: >+ >+ // The newly created accounts >+ QValueList< QGuardedPtr<KMAccount> >::Iterator it; >+ for (it = mNewAccounts.begin(); it != mNewAccounts.end(); ++it ) { >+ delete (*it); >+ } >+ mNewAccounts.clear(); >+ >+ // The modified accounts >+ QValueList<ModifiedAccountsType*>::Iterator j; >+ for ( j = mModifiedAccounts.begin() ; j != mModifiedAccounts.end() ; ++j ) { >+ delete (*j)->newAccount; >+ delete (*j); >+ } >+ mModifiedAccounts.clear(); >+ >+ >+} > > void AccountsPage::ReceivingTab::slotAccountSelected() > { >@@ -1398,8 +1420,7 @@ > // Add accounts marked as new > QValueList< QGuardedPtr<KMAccount> >::Iterator it; > for (it = mNewAccounts.begin(); it != mNewAccounts.end(); ++it ) { >- kmkernel->acctMgr()->add( *it ); >- (*it)->installTimer(); >+ kmkernel->acctMgr()->add( *it ); // calls installTimer too > } > > // Update accounts that have been modified >--- branches/KDE/3.5/kdepim/kmail/configuredialog_p.h 2007/02/08 19:54:29 631698 >+++ branches/KDE/3.5/kdepim/kmail/configuredialog_p.h 2007/02/09 15:10:36 631934 >@@ -349,6 +349,7 @@ > Q_OBJECT > public: > AccountsPageReceivingTab( QWidget * parent=0, const char * name=0 ); >+ ~AccountsPageReceivingTab(); > QString helpAnchor() const; > void save(); > >@@ -384,7 +385,7 @@ > QGuardedPtr< KMAccount > oldAccount; > QGuardedPtr< KMAccount > newAccount; > }; >- // ### make this a qptrlist: >+ // ### make this value-based: > QValueList< ModifiedAccountsType* > mModifiedAccounts; > }; > >--- branches/KDE/3.5/kdepim/kmail/kmaccount.cpp 2006/08/08 22:20:43 571253 >+++ branches/KDE/3.5/kdepim/kmail/kmaccount.cpp 2007/02/09 15:10:36 631934 >@@ -151,6 +151,11 @@ > { > setFolder(kmkernel->folderMgr()->findIdString(folderName), true); > } >+ >+ if (mInterval == 0) >+ deinstallTimer(); >+ else >+ installTimer(); > } > > >@@ -278,15 +283,10 @@ > void KMAccount::setCheckInterval(int aInterval) > { > if (aInterval <= 0) >- { > mInterval = 0; >- deinstallTimer(); >- } > else >- { > mInterval = aInterval; >- installTimer(); >- } >+ // Don't call installTimer from here! See #117935. > } > > //----------------------------------------------------------------------------
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 171346
:
113648
|
113652
| 113654 |
113657
|
113658
|
113659
|
113660
|
113703
|
113704
|
115351
|
115548