commit:     653d0304fe180fb030803e36552cff2f15656a65
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 28 21:40:16 2023 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sat Jan 28 22:32:25 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=653d0304

kde-apps/kmailtransport: SmtpJob: Fix use of KCompositeJob

Upstream commit 7b2a5ccea0c54b81245acdbbea77a13e570bba2b
KDE-bug: https://bugs.kde.org/show_bug.cgi?id=406839
KDE-bug: https://bugs.kde.org/show_bug.cgi?id=409122
KDE-bug: https://bugs.kde.org/show_bug.cgi?id=421664
KDE-bug: https://bugs.kde.org/show_bug.cgi?id=456923

Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 ...-22.08.3-SmtpJob-fix-use-of-KCompositeJob.patch | 49 ++++++++++++++++++++++
 .../kmailtransport-22.08.3-r1.ebuild               | 47 +++++++++++++++++++++
 2 files changed, 96 insertions(+)

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 <[email protected]>
+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
+

diff --git a/kde-apps/kmailtransport/kmailtransport-22.08.3-r1.ebuild 
b/kde-apps/kmailtransport/kmailtransport-22.08.3-r1.ebuild
new file mode 100644
index 000000000000..1a304ab97eb3
--- /dev/null
+++ b/kde-apps/kmailtransport/kmailtransport-22.08.3-r1.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ECM_QTHELP="true"
+ECM_TEST="true"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.96.0
+QTMIN=5.15.5
+inherit ecm gear.kde.org
+
+DESCRIPTION="Mail transport service"
+
+LICENSE="LGPL-2.1+"
+SLOT="5"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+IUSE=""
+
+RESTRICT="test"
+
+RDEPEND="
+       dev-libs/qtkeychain:=[qt5(+)]
+       >=dev-qt/qtdbus-${QTMIN}:5
+       >=dev-qt/qtgui-${QTMIN}:5
+       >=dev-qt/qtnetwork-${QTMIN}:5
+       >=dev-qt/qtwidgets-${QTMIN}:5
+       >=kde-apps/akonadi-${PVCUT}:5
+       >=kde-apps/akonadi-mime-${PVCUT}:5
+       >=kde-apps/kmime-${PVCUT}:5
+       >=kde-apps/ksmtp-${PVCUT}:5
+       >=kde-apps/libkgapi-${PVCUT}:5
+       >=kde-frameworks/kcmutils-${KFMIN}:5
+       >=kde-frameworks/kcompletion-${KFMIN}:5
+       >=kde-frameworks/kconfig-${KFMIN}:5
+       >=kde-frameworks/kconfigwidgets-${KFMIN}:5
+       >=kde-frameworks/kcoreaddons-${KFMIN}:5
+       >=kde-frameworks/ki18n-${KFMIN}:5
+       >=kde-frameworks/kio-${KFMIN}:5
+       >=kde-frameworks/kwallet-${KFMIN}:5
+       >=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+"
+DEPEND="${RDEPEND}
+       test? ( >=kde-frameworks/ktextwidgets-${KFMIN}:5 )
+"
+
+PATCHES=( "${FILESDIR}/${P}-SmtpJob-fix-use-of-KCompositeJob.patch" )

Reply via email to