From: Michael Rasmussen Date: Wed, 19 Aug 2015 23:26:33 +0000 (+0200) Subject: Fix possible crash when gpg is upgraded to gpg-v21 X-Git-Tag: 3.13.0~71 X-Git-Url: http://git.claws-mail.org/?p=claws.git;a=commitdiff_plain;h=1b32cc6794190c9fb6124b6de5b6f23e3007eec9 Fix possible crash when gpg is upgraded to gpg-v21 --- diff --git a/src/plugins/pgpcore/sgpgme.c b/src/plugins/pgpcore/sgpgme.c index bd14362d6..6c21f2ec0 100644 --- a/src/plugins/pgpcore/sgpgme.c +++ b/src/plugins/pgpcore/sgpgme.c @@ -218,6 +218,18 @@ gchar *sgpgme_sigstat_info_short(gpgme_ctx_t ctx, gpgme_verify_result_t status) } else if (gpg_err_code(err) != GPG_ERR_NO_ERROR && gpg_err_code(err) != GPG_ERR_EOF) { return g_strdup_printf(_("The signature can't be checked - %s"), gpgme_strerror(err)); + } else if (gpg_err_code(err) != GPG_ERR_NO_ERROR && gpg_err_code(err) == GPG_ERR_EOF) { + /* + * When gpg is upgraded to gpg-v21 then installer tries to migrate the old + * gpg keyrings found in ~/.gnupg to the new version. If the keyrings contain + * very old keys using ciphers no more supported in gpg-v21 this transition + * can fail and the left-over ~/.gnupg/pubring.gpg will cause claws to crash + * when the above condition is meet. + */ + return g_strdup_printf(_("The signature can't be checked - %s. Removing\n" + "left-over ~/.gnupg/pubring.gpg might solve the\n" + "problem if you have installed gpg-v21"), + gpgme_strerror(err)); } if (key) uname = extract_name(key->uids->uid);