[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