diff options
author | V3n3RiX <venerix@koprulu.sector> | 2023-01-29 02:53:24 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2023-01-29 02:53:24 +0000 |
commit | b8ec9071f5d20d8518b02d0077428b2c9f88861b (patch) | |
tree | 6214c0d63a2bd5ae464941924a90f415687fa63c /kde-apps/kmailtransport/files | |
parent | bdf6e70da7a28f45617c02a251bb6b3844202bc5 (diff) |
gentoo auto-resync : 29:01:2023 - 02:53:24
Diffstat (limited to 'kde-apps/kmailtransport/files')
-rw-r--r-- | kde-apps/kmailtransport/files/kmailtransport-22.08.3-SmtpJob-fix-use-of-KCompositeJob.patch | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/kde-apps/kmailtransport/files/kmailtransport-22.08.3-SmtpJob-fix-use-of-KCompositeJob.patch b/kde-apps/kmailtransport/files/kmailtransport-22.08.3-SmtpJob-fix-use-of-KCompositeJob.patch new file mode 100644 index 000000000000..4140cb77d21b --- /dev/null +++ b/kde-apps/kmailtransport/files/kmailtransport-22.08.3-SmtpJob-fix-use-of-KCompositeJob.patch @@ -0,0 +1,49 @@ +From 7b2a5ccea0c54b81245acdbbea77a13e570bba2b Mon Sep 17 00:00:00 2001 +From: Fabian Vogt <fabian@ritter-vogt.de> +Date: Mon, 21 Nov 2022 11:57:51 +0100 +Subject: [PATCH] SmtpJob: Fix use of KCompositeJob + +SmtpJob overrides slotResult, but this had two issues. First, it connected +to LoginJob::result itself, though addJob already does that. Second, in two +cases it did not remove finished jobs from the list of subjobs, leading to +dangling pointers and messing up state. This was most likely only reached +in the case of an expired XOAUTH2 access_token and caused the job to fail +after a successful refresh. + +BUG: 406839 +BUG: 409122 +BUG: 421664 +BUG: 456923 +--- + src/kmailtransport/plugins/smtp/smtpjob.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/kmailtransport/plugins/smtp/smtpjob.cpp b/src/kmailtransport/plugins/smtp/smtpjob.cpp +index 9d565af..5be220a 100644 +--- a/src/kmailtransport/plugins/smtp/smtpjob.cpp ++++ b/src/kmailtransport/plugins/smtp/smtpjob.cpp +@@ -308,7 +308,6 @@ void SmtpJobPrivate::doLogin() + break; + } + +- q->connect(login, &KJob::result, q, &SmtpJob::slotResult); + q->addSubjob(login); + login->start(); + qCDebug(MAILTRANSPORT_SMTP_LOG) << "Login started"; +@@ -352,11 +351,12 @@ bool SmtpJob::doKill() + void SmtpJob::slotResult(KJob *job) + { + if (s_sessionPool.isDestroyed()) { ++ removeSubjob(job); + return; + } +- + if (qobject_cast<KSmtp::LoginJob *>(job)) { + if (job->error() == KSmtp::LoginJob::TokenExpired) { ++ removeSubjob(job); + startPasswordRetrieval(/*force refresh */ true); + return; + } +-- +GitLab + |