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 /kbx/keybox-update.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 'kbx/keybox-update.c')
-rw-r--r-- | kbx/keybox-update.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/kbx/keybox-update.c b/kbx/keybox-update.c index fbcaec7b9..e263bc3d6 100644 --- a/kbx/keybox-update.c +++ b/kbx/keybox-update.c @@ -161,6 +161,7 @@ static int blob_filecopy (int mode, const char *fname, KEYBOXBLOB blob, int secret, int for_openpgp, off_t start_offset) { + gpg_err_code_t ec; FILE *fp, *newfp; int rc=0; char *bakfname = NULL; @@ -170,8 +171,8 @@ blob_filecopy (int mode, const char *fname, KEYBOXBLOB blob, /* Open the source file. Because we do a rename, we have to check the permissions of the file */ - if (access (fname, W_OK)) - return gpg_error_from_syserror (); + if ((ec = gnupg_access (fname, W_OK))) + return gpg_error (ec); fp = fopen (fname, "rb"); if (mode == FILECOPY_INSERT && !fp && errno == ENOENT) @@ -626,6 +627,7 @@ keybox_delete (KEYBOX_HANDLE hd) int keybox_compress (KEYBOX_HANDLE hd) { + gpg_err_code_t ec; int read_rc, rc; const char *fname; FILE *fp, *newfp; @@ -651,8 +653,8 @@ keybox_compress (KEYBOX_HANDLE hd) /* Open the source file. Because we do a rename, we have to check the permissions of the file */ - if (access (fname, W_OK)) - return gpg_error_from_syserror (); + if ((ec = gnupg_access (fname, W_OK))) + return gpg_error (ec); fp = fopen (fname, "rb"); if (!fp && errno == ENOENT) |