1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-05-28 21:50:02 +02:00

gpg: Fix a potential loss of key sigs during import with self-sigs-only.

* g10/import.c (import_one_real): Don't do the final clean in the
merge case.
--

This fixes a regression introduced with self-sigs-only.

GnuPG-bug-id: 4628
Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
Werner Koch 2019-11-07 15:07:25 +01:00
parent e624c41dba
commit 6701a38f8e
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B
2 changed files with 12 additions and 7 deletions

View File

@ -2389,12 +2389,14 @@ opposite meaning. The options are:
information. information.
@item self-sigs-only @item self-sigs-only
Accept only self-signatures while importing a key. All other Accept only self-signatures while importing a key. All other key
key signatures are skipped at an early import stage. This option signatures are skipped at an early import stage. This option can be
can be used with @code{keyserver-options} to mitigate attempts to used with @code{keyserver-options} to mitigate attempts to flood a
flood a key with bogus signatures from a keyserver. The drawback is key with bogus signatures from a keyserver. The drawback is that
that all other valid key signatures, as required by the Web of Trust all other valid key signatures, as required by the Web of Trust are
are also not imported. also not imported. Note that when using this option along with
import-clean it suppresses the final clean step after merging the
imported key into the existing key.
@item repair-keys @item repair-keys
After import, fix various problems with the After import, fix various problems with the

View File

@ -2151,7 +2151,10 @@ import_one_real (ctrl_t ctrl,
if (err) if (err)
goto leave; goto leave;
if ((options & IMPORT_CLEAN)) /* Clean the final keyblock again if requested. we can't do
* this if only self-signatures are imported; see bug #4628. */
if ((options & IMPORT_CLEAN)
&& !(options & IMPORT_SELF_SIGS_ONLY))
{ {
merge_keys_and_selfsig (ctrl, keyblock_orig); merge_keys_and_selfsig (ctrl, keyblock_orig);
clean_all_uids (ctrl, keyblock_orig, opt.verbose, clean_all_uids (ctrl, keyblock_orig, opt.verbose,