From c5604eeee4b64a44a1ca1d517ace14fc1cbda298 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Fri, 19 Jun 2015 12:39:29 +0200 Subject: [PATCH] gpg: Fix export problem in case an old keyring has PGP-2 keys. * g10/export.c (do_export_stream): Skip legacy keys. Signed-off-by: Werner Koch --- g10/export.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/g10/export.c b/g10/export.c index b65fb8d06..505012856 100644 --- a/g10/export.c +++ b/g10/export.c @@ -851,19 +851,26 @@ do_export_stream (ctrl_t ctrl, iobuf_t out, strlist_t users, int secret, kek = NULL; } - while (!(err = keydb_search (kdbhd, desc, ndesc, &descindex))) + for (;;) { int skip_until_subkey = 0; u32 keyid[2]; PKT_public_key *pk; + err = keydb_search (kdbhd, desc, ndesc, &descindex); if (!users) desc[0].mode = KEYDB_SEARCH_MODE_NEXT; + if (gpg_err_code (err) == GPG_ERR_LEGACY_KEY) + continue; /* Skip PGP2 keys. */ + if (err) + break; /* Read the keyblock. */ release_kbnode (keyblock); keyblock = NULL; err = keydb_get_keyblock (kdbhd, &keyblock); + if (gpg_err_code (err) == GPG_ERR_LEGACY_KEY) + continue; /* Skip PGP2 keys. */ if (err) { log_error (_("error reading keyblock: %s\n"), gpg_strerror (err));