diff options
author | Neal H. Walfield <[email protected]> | 2016-08-31 09:40:33 +0000 |
---|---|---|
committer | Neal H. Walfield <[email protected]> | 2016-08-31 09:47:50 +0000 |
commit | e4d5e3cb0d10e8f77c7100d42cfdb32051de1c18 (patch) | |
tree | fcc547b0926ccc976b6072d6728383f262777837 | |
parent | g10: Fix the show old policy functionality when changing a TOFU policy. (diff) | |
download | gnupg-e4d5e3cb0d10e8f77c7100d42cfdb32051de1c18.tar.gz gnupg-e4d5e3cb0d10e8f77c7100d42cfdb32051de1c18.zip |
g10: Update a key's TOFU policy in a transaction.
* g10/tofu.c (tofu_set_policy): Do the update in a transaction.
* g10/gpg.c (main): Do a TOFU policy update in a batch transaction.
--
Signed-off-by: Neal H. Walfield <[email protected]>
Diffstat (limited to '')
-rw-r--r-- | g10/gpg.c | 5 | ||||
-rw-r--r-- | g10/tofu.c | 4 |
2 files changed, 8 insertions, 1 deletions
@@ -4664,6 +4664,8 @@ main (int argc, char **argv) if (! hd) g10_exit (1); + tofu_begin_batch_update (ctrl); + for (i = 1; i < argc; i ++) { KEYDB_SEARCH_DESC desc; @@ -4721,8 +4723,9 @@ main (int argc, char **argv) g10_exit (1); } - keydb_release (hd); + tofu_end_batch_update (ctrl); + keydb_release (hd); } #endif /*USE_TOFU*/ break; diff --git a/g10/tofu.c b/g10/tofu.c index 137065ad6..4285e960c 100644 --- a/g10/tofu.c +++ b/g10/tofu.c @@ -2584,6 +2584,8 @@ tofu_set_policy (ctrl_t ctrl, kbnode_t kb, enum tofu_policy policy) fingerprint = hexfingerprint (pk, NULL, 0); + begin_transaction (ctrl); + for (; kb; kb = kb->next) { PKT_user_id *user_id; @@ -2605,6 +2607,8 @@ tofu_set_policy (ctrl_t ctrl, kbnode_t kb, enum tofu_policy policy) xfree (email); } + end_transaction (ctrl, 0); + xfree (fingerprint); return 0; } |