diff options
| author | NIIBE Yutaka <[email protected]> | 2025-10-22 02:03:18 +0000 |
|---|---|---|
| committer | NIIBE Yutaka <[email protected]> | 2025-10-22 02:03:18 +0000 |
| commit | 2d9e1295a1f4a6929efeccfb1d8492eee4ff588b (patch) | |
| tree | 8f988527ea48654641344f97369dd872e555eeca /g10/import.c | |
| parent | gpgsm: Fix delete and store certificate locking glitches. (diff) | |
| download | gnupg-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/import.c')
| -rw-r--r-- | g10/import.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/g10/import.c b/g10/import.c index 1ee818d61..effc38a93 100644 --- a/g10/import.c +++ b/g10/import.c @@ -2280,7 +2280,7 @@ import_one_real (ctrl_t ctrl, } } - err = keydb_insert_keyblock (hd, keyblock ); + err = keydb_insert_keyblock (hd, keyblock); if (err) log_error (_("error writing keyring '%s': %s\n"), keydb_get_resource_name (hd), gpg_strerror (err)); @@ -3618,6 +3618,13 @@ import_revoke_cert (ctrl_t ctrl, kbnode_t node, unsigned int options, goto leave; } + rc = keydb_lock (hd); + if (rc) + { + keydb_release (hd); + goto leave; + } + { byte afp[MAX_FINGERPRINT_LEN]; size_t an; |
