Fix possible crash when gpg is upgraded to gpg-v21

This commit is contained in:
Michael Rasmussen 2015-08-20 01:26:33 +02:00
parent 70782f3f2c
commit 1b32cc6794

View file

@ -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);