1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-05-27 21:41:23 +02:00

gpg: Don't call keybox_compress when KEYDB_RESOURCE_FLAG_READONLY.

* g10/keydb.c (keydb_add_resource): Check the FLAGS to call
keybox_compress.

--

GnuPG-bug-id: 6811
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
This commit is contained in:
NIIBE Yutaka 2023-12-29 10:57:26 +09:00
parent 2be53b214d
commit 591a53d716
No known key found for this signature in database
GPG Key ID: 640114AF89DE6054

View File

@ -746,28 +746,30 @@ keydb_add_resource (const char *url, unsigned int flags)
err = gpg_error (GPG_ERR_RESOURCE_LIMIT); err = gpg_error (GPG_ERR_RESOURCE_LIMIT);
else else
{ {
KEYBOX_HANDLE kbxhd;
if ((flags & KEYDB_RESOURCE_FLAG_PRIMARY)) if ((flags & KEYDB_RESOURCE_FLAG_PRIMARY))
primary_keydb = token; primary_keydb = token;
all_resources[used_resources].type = rt; all_resources[used_resources].type = rt;
all_resources[used_resources].u.kb = NULL; /* Not used here */ all_resources[used_resources].u.kb = NULL; /* Not used here */
all_resources[used_resources].token = token; all_resources[used_resources].token = token;
/* Do a compress run if needed and no other user is if (!(flags & KEYDB_RESOURCE_FLAG_READONLY))
* currently using the keybox. */
kbxhd = keybox_new_openpgp (token, 0);
if (kbxhd)
{ {
if (!keybox_lock (kbxhd, 1, 0)) KEYBOX_HANDLE kbxhd;
/* Do a compress run if needed and no other user is
* currently using the keybox. */
kbxhd = keybox_new_openpgp (token, 0);
if (kbxhd)
{ {
keybox_compress (kbxhd); if (!keybox_lock (kbxhd, 1, 0))
keybox_lock (kbxhd, 0, 0); {
keybox_compress (kbxhd);
keybox_lock (kbxhd, 0, 0);
}
keybox_release (kbxhd);
} }
keybox_release (kbxhd);
} }
used_resources++; used_resources++;
} }
} }