From a6e5c8bf18696007c48c6f362aa355020fe82f21 Mon Sep 17 00:00:00 2001 From: Andre Heinecke Date: Tue, 24 Jul 2018 08:40:28 +0200 Subject: [PATCH] cpp: Add safety checks for key update * lang/cpp/src/key.cpp (Key::update): Check that the key is not NULL. * lang/cpp/src/verificationresult.cpp (GpgME::Signature::key): Check for fingerprint. --- lang/cpp/src/key.cpp | 3 +++ lang/cpp/src/verificationresult.cpp | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/lang/cpp/src/key.cpp b/lang/cpp/src/key.cpp index 61b3eb77..8fc266ff 100644 --- a/lang/cpp/src/key.cpp +++ b/lang/cpp/src/key.cpp @@ -347,6 +347,9 @@ const Key &Key::mergeWith(const Key &other) void Key::update() { + if (isNull() || !primaryFingerprint()) { + return; + } auto ctx = Context::createForProtocol(protocol()); if (!ctx) { return; diff --git a/lang/cpp/src/verificationresult.cpp b/lang/cpp/src/verificationresult.cpp index 2c42d074..fa8237ad 100644 --- a/lang/cpp/src/verificationresult.cpp +++ b/lang/cpp/src/verificationresult.cpp @@ -406,7 +406,7 @@ GpgME::Key GpgME::Signature::key(bool search, bool update) const } GpgME::Key ret = key(); - if (ret.isNull() && search) { + if (ret.isNull() && search && fingerprint ()) { auto ctx = Context::createForProtocol (d->proto); if (ctx) { ctx->setKeyListMode(KeyListMode::Local |