diff options
author | Werner Koch <[email protected]> | 2020-10-20 08:43:55 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2020-10-20 10:15:55 +0000 |
commit | c94ee1386e0d5cdac51086c4d5b92de59c09c9b5 (patch) | |
tree | 34089b99da850a449f95ab9dd7e88317194b5f11 /agent/trustlist.c | |
parent | gpg,ecc: Fix SOS handling when receiving from agent. (diff) | |
download | gnupg-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.c | 17 |
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 (); |