aboutsummaryrefslogtreecommitdiffstats
path: root/agent/trustlist.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2020-10-20 08:43:55 +0000
committerWerner Koch <[email protected]>2020-10-20 10:15:55 +0000
commitc94ee1386e0d5cdac51086c4d5b92de59c09c9b5 (patch)
tree34089b99da850a449f95ab9dd7e88317194b5f11 /agent/trustlist.c
parentgpg,ecc: Fix SOS handling when receiving from agent. (diff)
downloadgnupg-c94ee1386e0d5cdac51086c4d5b92de59c09c9b5.tar.gz
gnupg-c94ee1386e0d5cdac51086c4d5b92de59c09c9b5.zip
Replace all calls to access by gnupg_access
* common/sysutils.c (gnupg_access): New. Replace all calls to access by this wrapper. * common/homedir.c (w32_shgetfolderpath): Change to return UTF-8 directory name. (standard_homedir): Adjust for change. (w32_commondir, gnupg_cachedir): Ditto. -- Also use SHGetFolderPathW instead of SHGetFolderPathA on Windows. This is required to correctly handle non-ascii filenames on Windows. GnuPG-bug-id: 5098
Diffstat (limited to 'agent/trustlist.c')
-rw-r--r--agent/trustlist.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/agent/trustlist.c b/agent/trustlist.c
index d91e92e07..087afbd51 100644
--- a/agent/trustlist.c
+++ b/agent/trustlist.c
@@ -185,6 +185,7 @@ read_one_trustfile (const char *fname, int allow_include,
{
char *etcname;
gpg_error_t err2;
+ gpg_err_code_t ec;
if (!allow_include)
{
@@ -198,7 +199,7 @@ read_one_trustfile (const char *fname, int allow_include,
if ( !strcmp (etcname, fname) ) /* Same file. */
log_info (_("statement \"%s\" ignored in '%s', line %d\n"),
"include-default", fname, lnr);
- else if ( access (etcname, F_OK) && errno == ENOENT )
+ else if ((ec=gnupg_access (etcname, F_OK)) && ec == GPG_ERR_ENOENT)
{
/* A non existent system trustlist is not an error.
Just print a note. */
@@ -336,6 +337,7 @@ read_trustfiles (void)
size_t tablesize;
char *fname;
int allow_include = 1;
+ gpg_err_code_t ec;
tablesize = 20;
table = xtrycalloc (tablesize, sizeof *table);
@@ -351,13 +353,13 @@ read_trustfiles (void)
return err;
}
- if ( access (fname, F_OK) )
+ if ((ec = gnupg_access (fname, F_OK)))
{
- if ( errno == ENOENT )
+ if ( ec == GPG_ERR_ENOENT )
; /* Silently ignore a non-existing trustfile. */
else
{
- err = gpg_error_from_syserror ();
+ err = gpg_error (ec);
log_error (_("error opening '%s': %s\n"), fname, gpg_strerror (err));
}
xfree (fname);
@@ -601,6 +603,7 @@ gpg_error_t
agent_marktrusted (ctrl_t ctrl, const char *name, const char *fpr, int flag)
{
gpg_error_t err = 0;
+ gpg_err_code_t ec;
char *desc;
char *fname;
estream_t fp;
@@ -618,7 +621,7 @@ agent_marktrusted (ctrl_t ctrl, const char *name, const char *fpr, int flag)
if (!fname)
return gpg_error_from_syserror ();
- if ( access (fname, W_OK) && errno != ENOENT)
+ if ((ec = access (fname, W_OK)) && ec != GPG_ERR_ENOENT)
{
xfree (fname);
return gpg_error (GPG_ERR_EPERM);
@@ -751,12 +754,12 @@ agent_marktrusted (ctrl_t ctrl, const char *name, const char *fpr, int flag)
xfree (nameformatted);
return err;
}
- if ( access (fname, F_OK) && errno == ENOENT)
+ if ((ec = access (fname, F_OK)) && ec == GPG_ERR_ENOENT)
{
fp = es_fopen (fname, "wx,mode=-rw-r");
if (!fp)
{
- err = gpg_error_from_syserror ();
+ err = gpg_error (ec);
log_error ("can't create '%s': %s\n", fname, gpg_strerror (err));
xfree (fname);
unlock_trusttable ();