From 1aad5c6277ea3852ff57bbf680f61c9136ce4d5c Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Thu, 17 Mar 2016 15:15:48 +0100 Subject: [PATCH] sm: Always create a keybox header when creating a new keybox. * sm/keydb.c (maybe_create_keybox): Create the header blob. -- This is required so that g10/keydb.c can properly detect that a keybox file is actually there. Just writing a 0 zero length keybox file is not sufficient because a file with that name may also be an old-style OpenPGP keyring. GnuPG-bug-id: 2275 Signed-off-by: Werner Koch --- sm/keydb.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/sm/keydb.c b/sm/keydb.c index f5705cb45..495eb497f 100644 --- a/sm/keydb.c +++ b/sm/keydb.c @@ -213,6 +213,18 @@ maybe_create_keybox (char *filename, int force, int *r_created) } umask (oldmask); + /* Make sure that at least one record is in a new keybox file, so + that the detection magic for OpenPGP keyboxes works the next time + it is used. */ + rc = _keybox_write_header_blob (fp, 0); + if (rc) + { + fclose (fp); + log_error (_("error creating keybox '%s': %s\n"), + filename, gpg_strerror (rc)); + goto leave; + } + if (!opt.quiet) log_info (_("keybox '%s' created\n"), filename); if (r_created)