From c5e8921dfd88d26eea5ea9c036ae2ff70b3165ca Mon Sep 17 00:00:00 2001 From: Mario Limonciello Date: Wed, 30 Mar 2016 23:59:48 -0500 Subject: [PATCH] Test that GPG key import actually was successful (or didn't change a key already in the keyring) --- src/fu-keyring.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/fu-keyring.c b/src/fu-keyring.c index 2ef334219..aaa5214eb 100644 --- a/src/fu-keyring.c +++ b/src/fu-keyring.c @@ -144,6 +144,19 @@ fu_keyring_add_public_key (FuKeyring *keyring, const gchar *filename, GError **e g_debug ("importing key %s [%i] %s", s->fpr, s->status, gpgme_strerror (s->result)); } + + /* make sure keys were really imported */ + if (result->imported + result->unchanged == 0) { + ret = FALSE; + g_debug("imported: %d, unchanged: %d, not_imported: %d", result->imported, + result->unchanged, + result->not_imported); + g_set_error (error, + FWUPD_ERROR, + FWUPD_ERROR_INTERNAL, + "Key import failed %s", + filename); + } out: gpgme_data_release (data); return ret;