[git] GnuPG - branch, master, updated. gnupg-2.1.14-65-ga27410a
by Justus Winter
cvs at cvs.gnupg.org
Wed Aug 10 16:51:35 CEST 2016
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 a27410a251cd25ca96cd6743969c4db0a0fd553f (commit)
from 194b1e979c7c547afd0dfea5b2496bdfa34b20f1 (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 a27410a251cd25ca96cd6743969c4db0a0fd553f
Author: Justus Winter <justus at g10code.com>
Date: Wed Aug 10 16:41:22 2016 +0200
g10: Fix opening of trust database.
* g10/tdbio.c (tdbio_set_dbname): This function explicitly checks for
the file size, but handled the case of a zero-sized file incorrectly
by returning success. Fix this by initializing the database in that
case.
* tests/openpgp/Makefile.am (XTESTS): Add new test.
* tests/openpgp/issue2417.scm: New file.
GnuPG-bug-id: 2417
Signed-off-by: Justus Winter <justus at g10code.com>
diff --git a/g10/tdbio.c b/g10/tdbio.c
index e27788e..02fa91e 100644
--- a/g10/tdbio.c
+++ b/g10/tdbio.c
@@ -685,7 +685,7 @@ tdbio_set_dbname (const char *new_dbname, int create, int *r_nofile)
take_write_lock ();
- if (access (fname, R_OK))
+ if (access (fname, R_OK) || stat (fname, &statbuf) || statbuf.st_size == 0)
{
FILE *fp;
TRUSTREC rec;
@@ -699,7 +699,7 @@ tdbio_set_dbname (const char *new_dbname, int create, int *r_nofile)
else
gpg_err_set_errno (EIO);
#endif /*HAVE_W32CE_SYSTEM*/
- if (errno != ENOENT)
+ if (errno && errno != ENOENT)
log_fatal ( _("can't access '%s': %s\n"), fname, strerror (errno));
oldmask = umask (077);
diff --git a/tests/openpgp/Makefile.am b/tests/openpgp/Makefile.am
index da12cae..5d8acbf 100644
--- a/tests/openpgp/Makefile.am
+++ b/tests/openpgp/Makefile.am
@@ -84,6 +84,7 @@ XTESTS = \
ssh.scm \
issue2015.scm \
issue2346.scm \
+ issue2417.scm \
issue2419.scm
# XXX: Currently, one cannot override automake's 'check' target. As a
diff --git a/tests/openpgp/issue2417.scm b/tests/openpgp/issue2417.scm
new file mode 100755
index 0000000..32840f2
--- /dev/null
+++ b/tests/openpgp/issue2417.scm
@@ -0,0 +1,39 @@
+#!/usr/bin/env gpgscm
+
+;; Copyright (C) 2016 g10 Code GmbH
+;;
+;; This file is part of GnuPG.
+;;
+;; GnuPG is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 3 of the License, or
+;; (at your option) any later version.
+;;
+;; GnuPG is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with this program; if not, see <http://www.gnu.org/licenses/>.
+
+(load (with-path "defs.scm"))
+
+(define (touch file-name)
+ (close (open file-name (logior O_WRONLY O_BINARY O_CREAT) #o600)))
+
+(info "Checking robustness wrt empty databases in gnupghome (issue2417)...")
+
+(lettmp
+ ;; Prepare some random key to import later.
+ (keyfile)
+ (pipe:do
+ (pipe:gpg '(--export alpha))
+ (pipe:write-to keyfile (logior O_WRONLY O_BINARY O_CREAT) #o600))
+
+ (with-temporary-working-directory
+ (setenv "GNUPGHOME" "." #t)
+ (touch "trustdb.gpg")
+ (touch "pubring.gpg")
+ (touch "pubring.kbx")
+ (call-check `(,(tool 'GPG) --import ,keyfile))))
-----------------------------------------------------------------------
Summary of changes:
g10/tdbio.c | 4 ++--
tests/openpgp/Makefile.am | 1 +
tests/openpgp/{issue2419.scm => issue2417.scm} | 23 +++++++++++++++++------
3 files changed, 20 insertions(+), 8 deletions(-)
copy tests/openpgp/{issue2419.scm => issue2417.scm} (59%)
hooks/post-receive
--
The GNU Privacy Guard
http://git.gnupg.org
More information about the Gnupg-commits
mailing list