diff --git a/lib/libalpm/signing.c b/lib/libalpm/signing.c index 0e022624..8a7fd87c 100644 --- a/lib/libalpm/signing.c +++ b/lib/libalpm/signing.c @@ -359,14 +359,18 @@ static int key_search_keyserver(alpm_handle_t *handle, const char *fpr, } else { pgpkey->fingerprint = key->subkeys->keyid; } - pgpkey->uid = key->uids->uid; - pgpkey->name = key->uids->name; - pgpkey->email = key->uids->email; + + /* we are probably going to fail importing, but continue anyway... */ + if(key->uids != NULL) { + pgpkey->uid = key->uids->uid; + pgpkey->name = key->uids->name; + pgpkey->email = key->uids->email; + } + pgpkey->created = key->subkeys->timestamp; pgpkey->expires = key->subkeys->expires; pgpkey->length = key->subkeys->length; pgpkey->revoked = key->subkeys->revoked; - /* Initialize with '?', this is overwritten unless public key * algorithm is unknown. */ pgpkey->pubkey_algo = '?'; @@ -535,7 +539,7 @@ int _alpm_key_import(alpm_handle_t *handle, const char *uid, const char *fpr) ret = 0; } else { _alpm_log(handle, ALPM_LOG_ERROR, - _("key \"%s\" could not be imported\n"), fetch_key.uid); + _("key \"%s\" could not be imported\n"), fpr); } } else { _alpm_log(handle, ALPM_LOG_ERROR,