[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/KDE/4.5/kdepimlibs/mailtransport
From: Olivier Trichet <nive () nivalis ! org>
Date: 2010-09-08 18:24:39
Message-ID: 20100908182439.8CE32AC857 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1173140 by otrichet:
Fix an infinite loop retrieving the password of a mail transport when \
TransportManager::schedule() is used and the stored password is empty.
[...]
#9719 0x00007fffef31f979 in MailTransport::TransportManager::loadPasswords \
(this=0x1144550) at /home/kde/dev/src/kdepimlibs/mailtransport/transportmanager.cpp:629
#9720 0x00007fffef31675a in MailTransport::Transport::password (this=0x11834c0) at \
/home/kde/dev/src/kdepimlibs/mailtransport/transport.cpp:82 #9721 0x00007fffef3386ef \
in MailTransport::SmtpJob::startSmtpJob (this=0x1187410) at \
/home/kde/dev/src/kdepimlibs/mailtransport/smtpjob.cpp:159 #9722 0x00007fffef337c1e \
in MailTransport::SmtpJob::doStart (this=0x1187410) at \
/home/kde/dev/src/kdepimlibs/mailtransport/smtpjob.cpp:114 #9723 0x00007fffef335344 \
in MailTransport::TransportJob::start (this=0x1187410) at \
/home/kde/dev/src/kdepimlibs/mailtransport/transportjob.cpp:129 #9724 \
0x00007fffef31f979 in MailTransport::TransportManager::loadPasswords (this=0x1144550) \
at /home/kde/dev/src/kdepimlibs/mailtransport/transportmanager.cpp:629 [...]
review: http://reviewboard.kde.org/r/2579/
M +1 -2 transport.cpp
M +3 -2 transportmanager.cpp
--- branches/KDE/4.5/kdepimlibs/mailtransport/transport.cpp #1173139:1173140
@@ -79,8 +79,7 @@
{
if ( !d->passwordLoaded && requiresAuthentication() && storePassword() &&
d->password.isEmpty() ) {
- TransportManager::self()->loadPasswords();
- d->password = TransportManager::self()->transportById( id(), false \
)->password(); + readPassword();
}
return d->password;
}
--- branches/KDE/4.5/kdepimlibs/mailtransport/transportmanager.cpp #1173139:1173140
@@ -628,10 +628,11 @@
}
// flush the wallet queue
- foreach ( TransportJob *job, d->walletQueue ) {
+ const QList<TransportJob*> copy = d->walletQueue;
+ d->walletQueue.clear();
+ foreach ( TransportJob *job, copy ) {
job->start();
}
- d->walletQueue.clear();
emit passwordsChanged();
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic