[Pkg-gnupg-commit] [gnupg2] 01/160: g10: Fix another race condition for trustdb access.
Daniel Kahn Gillmor
dkg at fifthhorseman.net
Fri Jul 15 09:36:30 UTC 2016
This is an automated email from the git hooks/post-receive script.
dkg pushed a commit to branch upstream
in repository gnupg2.
commit 35a3ce2acf78a95fecbccfd8db0560cca24232df
Author: Niibe Yutaka <gniibe at fsij.org>
Date: Wed Jun 15 08:41:56 2016 +0900
g10: Fix another race condition for trustdb access.
* g10/tdbio.c (create_version_record): Call create_hashtable to always
make hashtable, together with the version record.
(get_trusthashrec): Remove call to create_hashtable.
--
GnuPG-bug-id: 1675
Thanks to Scott Moser for a reproducible script and patience.
Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
---
g10/tdbio.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/g10/tdbio.c b/g10/tdbio.c
index a414709..e27788e 100644
--- a/g10/tdbio.c
+++ b/g10/tdbio.c
@@ -119,6 +119,7 @@ static int in_transaction;
static void open_db (void);
+static void create_hashtable (TRUSTREC *vr, int type);
@@ -582,8 +583,13 @@ create_version_record (void)
rec.rectype = RECTYPE_VER;
rec.recnum = 0;
rc = tdbio_write_record (&rec);
+
if (!rc)
tdbio_sync ();
+
+ if (!rc)
+ create_hashtable (&rec, 0);
+
return rc;
}
@@ -957,8 +963,6 @@ get_trusthashrec(void)
if (rc)
log_fatal (_("%s: error reading version record: %s\n"),
db_name, gpg_strerror (rc) );
- if (!vr.r.ver.trusthashtbl)
- create_hashtable (&vr, 0);
trusthashtbl = vr.r.ver.trusthashtbl;
}
--
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