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
1 changed files with 14 additions and 12 deletions

View File

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