Forwarding to list. -------- Original Message -------- Subject: [PATCH 1/1] libalpm: check for valid public key algorithm Date: Tue, 24 Jun 2014 09:38:19 +0200 From: Christian Hesse <mail@eworm.de> To: Allan McRae <allan@archlinux.org> CC: Christian Hesse <mail@eworm.de> --- lib/libalpm/signing.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/libalpm/signing.c b/lib/libalpm/signing.c index c6b748e..e46fa2e 100644 --- a/lib/libalpm/signing.c +++ b/lib/libalpm/signing.c @@ -327,6 +327,10 @@ static int key_search(alpm_handle_t *handle, const char *fpr, pgpkey->length = key->subkeys->length; pgpkey->revoked = key->subkeys->revoked; + /* Initialize with '?', this is overwritten unless public key + * algorithm is unknown. */ + pgpkey->pubkey_algo = '?'; + switch(key->subkeys->pubkey_algo) { case GPGME_PK_RSA: case GPGME_PK_RSA_E: @@ -352,6 +356,14 @@ static int key_search(alpm_handle_t *handle, const char *fpr, ret = 1; + /* We do not want to add a default switch case above to receive + * compiler error on new public key algorithm in gpgme. So check + * here if we have a valid pubkey_algo. */ + if (pgpkey->pubkey_algo == '?') { + _alpm_log(handle, ALPM_LOG_DEBUG, + "unknown public key algorithm: %d\n", key->subkeys->pubkey_algo); + } + gpg_error: if(ret != 1) { _alpm_log(handle, ALPM_LOG_DEBUG, "gpg error: %s\n", gpgme_strerror(gpg_err)); -- 2.0.0