From 6ed11b0078a7e1f1514e2d31e015f936f2c14b64 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Mon, 27 Nov 2017 17:13:55 +0100 Subject: It's unclear how thread-safe the constructor/protocol access is, so let's guard it. --- framework/src/domain/mime/mailcrypto.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/framework/src/domain/mime/mailcrypto.cpp b/framework/src/domain/mime/mailcrypto.cpp index 8cf55089..a4723199 100644 --- a/framework/src/domain/mime/mailcrypto.cpp +++ b/framework/src/domain/mime/mailcrypto.cpp @@ -32,6 +32,8 @@ #include #include #include +#include +#include /* * FIXME: @@ -471,12 +473,16 @@ void MailCrypto::importKeys(const std::vector &keys) job->exec(keys); } +QMutex sMutex; + std::vector MailCrypto::findKeys(const QStringList &filter, bool findPrivate, bool remote, Protocol protocol) { + QMutexLocker locker{&sMutex}; const QGpgME::Protocol *const backend = protocol == SMIME ? QGpgME::smime() : QGpgME::openpgp(); Q_ASSERT(backend); QGpgME::KeyListJob *job = backend->keyListJob(remote); Q_ASSERT(job); + locker.unlock(); std::vector keys; GpgME::KeyListResult res = job->exec(filter, findPrivate, keys); -- cgit v1.2.3