[Pkg-gnupg-commit] [gnupg2] 19/185: gpg: Disable keydb handle caching

Daniel Kahn Gillmor dkg at fifthhorseman.net
Mon Aug 7 11:55:16 UTC 2017


This is an automated email from the git hooks/post-receive script.

dkg pushed a commit to branch experimental
in repository gnupg2.

commit d3d640b9cc98dd0d06b49a2e4d46eb67af96fe29
Author: Andre Heinecke <aheinecke at intevation.de>
Date:   Tue May 30 10:22:35 2017 +0200

    gpg: Disable keydb handle caching
    
    * g10/getkey.c (getkey_end): Disable caching of the open keydb
    handle.
    
    --
    This created a big regression for Windows because the keyring
    is only released after the global ctrl is released. So if an operation
    does a getkey and then tries to modify the keyring it will fail on
    Windows with a sharing violation. We need to modify all
    keyring write operations to also take the ctrl and close the
    cached_getkey_kdb handle to make writing work. See:
    https://dev.gnupg.org/T3097
    
    GnuPG-Bug-Id: T3097
    
    Signed-off-by: Andre Heinecke <aheinecke at intevation.de>
---
 g10/getkey.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/g10/getkey.c b/g10/getkey.c
index 04ecf4f..ac6b9a3 100644
--- a/g10/getkey.c
+++ b/g10/getkey.c
@@ -2219,10 +2219,20 @@ getkey_end (ctrl_t ctrl, getkey_ctx_t ctx)
 {
   if (ctx)
     {
+/*
+XXX: This creates a big regression for Windows because the keyring
+* is only released after the global ctrl is released. So if an operation
+* does a getkey and then tries to modify the keyring it will fail on
+* Windows with a sharing violation. We need to modify all
+* keyring write operations to also take the ctrl and close the
+* cached_getkey_kdb handle to make writing work. See:
+* https://dev.gnupg.org/T3097
+
       if (ctrl && !ctrl->cached_getkey_kdb)
         ctrl->cached_getkey_kdb = ctx->kr_handle;
       else
-        keydb_release (ctx->kr_handle);
+*/
+      keydb_release (ctx->kr_handle);
       free_strlist (ctx->extra_list);
       if (!ctx->not_allocated)
 	xfree (ctx);

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gnupg2.git



More information about the Pkg-gnupg-commit mailing list