[git] GnuPG - branch, master, updated. gnupg-2.1.21-19-gd3d640b

by Andre Heinecke cvs at cvs.gnupg.org
Tue May 30 10:26:02 CEST 2017


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The GNU Privacy Guard".

The branch, master has been updated
       via  d3d640b9cc98dd0d06b49a2e4d46eb67af96fe29 (commit)
      from  996544626ea416c173a940db47f47f9e5cbd844c (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
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>

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);

-----------------------------------------------------------------------

Summary of changes:
 g10/getkey.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)


hooks/post-receive
-- 
The GNU Privacy Guard
http://git.gnupg.org




More information about the Gnupg-commits mailing list