diff options
author | David Shaw <[email protected]> | 2006-05-22 16:53:09 +0000 |
---|---|---|
committer | David Shaw <[email protected]> | 2006-05-22 16:53:09 +0000 |
commit | 7596ae1f6ae6d60b696da7297047b59bdb99186e (patch) | |
tree | 216eb38fe762e6f14e73d457f7962a67a6977ae4 /g10/import.c | |
parent | Updated keys (diff) | |
download | gnupg-7596ae1f6ae6d60b696da7297047b59bdb99186e.tar.gz gnupg-7596ae1f6ae6d60b696da7297047b59bdb99186e.zip |
* getkey.c (get_pubkey_byname), import.c (import_one): Fix key selection
problem when auto-key-locate returns a list of keys, not all of which are
usable (revoked, expired, etc). Noted by Simon Josefsson.
Diffstat (limited to '')
-rw-r--r-- | g10/import.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/g10/import.c b/g10/import.c index 3b7fa5e72..81aa506a4 100644 --- a/g10/import.c +++ b/g10/import.c @@ -696,9 +696,6 @@ import_one( const char *fname, KBNODE keyblock, struct stats_s *stats, pk = node->pkt->pkt.public_key; - if(fpr) - *fpr=fingerprint_from_pk(pk,NULL,fpr_len); - keyid_from_pk( pk, keyid ); uidnode = find_next_kbnode( keyblock, PKT_USER_ID ); @@ -981,6 +978,17 @@ import_one( const char *fname, KBNODE keyblock, struct stats_s *stats, } else if(new_key) { + if(fpr && stats->imported==1) + { + xfree(*fpr); + *fpr=fingerprint_from_pk(pk,NULL,fpr_len); + } + else + { + xfree(*fpr); + *fpr=NULL; + } + revocation_present(keyblock); if(seckey_available(keyid)==0) check_prefs(keyblock); |