mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
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@g10code.com>
This commit is contained in:
parent
194b1e979c
commit
a27410a251
3 changed files with 42 additions and 2 deletions
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue