gentoo-overlay/kde-apps/kmail-account-wizard/files/kmail-account-wizard-20.04.3-CVE-2020-15954.patch

81 lines
2.7 KiB
Diff

From a64d80e523edce7d3d59c26834973418fae042f6 Mon Sep 17 00:00:00 2001
From: Laurent Montel <montel@kde.org>
Date: Tue, 28 Jul 2020 13:52:19 +0200
Subject: [PATCH] Show info about encryption/authentication settings
CCBUG: 423426
---
src/transport.cpp | 18 +++++++++++++++---
src/transport.h | 2 ++
2 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/src/transport.cpp b/src/transport.cpp
index 567df31..26344ef 100644
--- a/src/transport.cpp
+++ b/src/transport.cpp
@@ -53,14 +53,16 @@ static const StringValueTable<MailTransport::Transport::EnumAuthenticationType>
static const int authenticationTypeEnumSize = sizeof(authenticationTypeEnum) / sizeof(*authenticationTypeEnum);
template<typename T>
-static typename T::value_type stringToValue(const T *table, const int tableSize, const QString &string)
+static typename T::value_type stringToValue(const T *table, const int tableSize, const QString &string, bool &valid)
{
const QString ref = string.toLower();
for (int i = 0; i < tableSize; ++i) {
if (ref == QLatin1String(table[i].name)) {
+ valid = true;
return table[i].value;
}
}
+ valid = false;
return table[0].value; // TODO: error handling
}
@@ -98,6 +100,7 @@ void Transport::create()
mt->setAuthenticationType(m_auth);
m_transportId = mt->id();
mt->save();
+ Q_EMIT info(i18n("Mail transport uses '%1' encryption and '%2' authentication.", m_encrStr, m_authStr));
MailTransport::TransportManager::self()->addTransport(mt);
MailTransport::TransportManager::self()->setDefaultTransport(mt->id());
if (m_editMode) {
@@ -154,12 +157,21 @@ void Transport::setPassword(const QString &password)
void Transport::setEncryption(const QString &encryption)
{
- m_encr = stringToValue(encryptionEnum, encryptionEnumSize, encryption);
+ bool valid;
+ m_encr = stringToValue(encryptionEnum, encryptionEnumSize, encryption, valid);
+ if (valid) {
+ m_encrStr = encryption;
+ }
}
void Transport::setAuthenticationType(const QString &authType)
{
- m_auth = stringToValue(authenticationTypeEnum, authenticationTypeEnumSize, authType);
+ bool valid;
+ m_auth = stringToValue(authenticationTypeEnum, authenticationTypeEnumSize, authType, valid);
+ if (valid) {
+ m_authStr = authType;
+ }
+
}
int Transport::transportId() const
diff --git a/src/transport.h b/src/transport.h
index 3773b04..6415bf9 100644
--- a/src/transport.h
+++ b/src/transport.h
@@ -53,6 +53,8 @@ private:
QString m_password;
MailTransport::Transport::EnumEncryption::type m_encr;
MailTransport::Transport::EnumAuthenticationType::type m_auth;
+ QString m_encrStr;
+ QString m_authStr;
bool m_editMode;
};
--
GitLab