aboutsummaryrefslogtreecommitdiffstats
path: root/g10/keyedit.c
diff options
context:
space:
mode:
authorNIIBE Yutaka <[email protected]>2025-10-22 02:03:18 +0000
committerNIIBE Yutaka <[email protected]>2025-10-22 02:03:18 +0000
commit2d9e1295a1f4a6929efeccfb1d8492eee4ff588b (patch)
tree8f988527ea48654641344f97369dd872e555eeca /g10/keyedit.c
parentgpgsm: Fix delete and store certificate locking glitches. (diff)
downloadgnupg-2d9e1295a1f4a6929efeccfb1d8492eee4ff588b.tar.gz
gnupg-2d9e1295a1f4a6929efeccfb1d8492eee4ff588b.zip
gpg,gpgsm: Serialize write access to keybox/keyring to protect.
* g10/keydb.c (internal_keydb_update_keyblock): Caller should lock the resource by keydb_lock, before use of this routine. (internal_keydb_insert_keyblock): Likewise. (internal_keydb_delete_keyblock): Likewise. * g10/delkey.c (do_delete_key): Serialize the access to the resource. * g10/import.c (import_revoke_cert): Likewise. * g10/keyedit.c (quick_find_keyblock): Likewise. * g10/keygen.c (quick_find_keyblock): Likewise. * sm/delete.c (delete_one): Lock earlier to protect the resource correctly. * sm/keydb.c (do_set_flags): Rename from keydb_set_flags. (keydb_set_cert_flags): Follow the change. (keydb_update_cert): Require locked by caller. * sm/keydb.h (keydb_set_flags): Remove. -- GnuPG-bug-id: 7855 Signed-off-by: NIIBE Yutaka <[email protected]>
Diffstat (limited to 'g10/keyedit.c')
-rw-r--r--g10/keyedit.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/g10/keyedit.c b/g10/keyedit.c
index 0c54a448b..bae79b37e 100644
--- a/g10/keyedit.c
+++ b/g10/keyedit.c
@@ -2583,6 +2583,9 @@ quick_find_keyblock (ctrl_t ctrl, const char *username, int want_secret,
err = gpg_error_from_syserror ();
goto leave;
}
+ err = keydb_lock (kdbhd);
+ if (err)
+ goto leave;
err = classify_user_id (username, &desc, 1);
if (!err)