diff options
author | Werner Koch <[email protected]> | 2016-01-14 15:50:15 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2016-01-14 15:50:24 +0000 |
commit | 8241ed59d05e06252647b26477ed5c2f84895a26 (patch) | |
tree | 915ecd413d70c3896bb2d8dc1979aa6825b664c8 /g10/keyring.c | |
parent | kbx: Add function keybox_tmp_names to avoid code duplication. (diff) | |
download | gnupg-8241ed59d05e06252647b26477ed5c2f84895a26.tar.gz gnupg-8241ed59d05e06252647b26477ed5c2f84895a26.zip |
kbx: New function keybox_file_rename to replace rename.
* kbx/keybox-util.c: Include windows.h.
(keybox_file_rename): New.
* kbx/keybox-update.c (rename_tmp_file): Replace remove+rename by
keybox_file_rename.
* g10/keyring.c (rename_tmp_file): Ditto.
Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'g10/keyring.c')
-rw-r--r-- | g10/keyring.c | 23 |
1 files changed, 5 insertions, 18 deletions
diff --git a/g10/keyring.c b/g10/keyring.c index 535dd2b78..7ae50a392 100644 --- a/g10/keyring.c +++ b/g10/keyring.c @@ -1337,32 +1337,19 @@ rename_tmp_file (const char *bakfname, const char *tmpfname, const char *fname) iobuf_ioctl (NULL, IOBUF_IOCTL_INVALIDATE_CACHE, 0, (char*)fname ); /* First make a backup file. */ -#if defined(HAVE_DOSISH_SYSTEM) || defined(__riscos__) - gnupg_remove (bakfname); -#endif - if (rename (fname, bakfname) ) - { - rc = gpg_error_from_syserror (); - log_error ("renaming '%s' to '%s' failed: %s\n", - fname, bakfname, strerror(errno) ); - return rc; - } + rc = keybox_file_rename (fname, bakfname); + if (rc) + goto fail; /* then rename the file */ -#if defined(HAVE_DOSISH_SYSTEM) || defined(__riscos__) - gnupg_remove( fname ); -#endif - if (rename (tmpfname, fname) ) + rc = keybox_file_rename (tmpfname, fname); + if (rc) { - rc = gpg_error_from_syserror (); - log_error (_("renaming '%s' to '%s' failed: %s\n"), - tmpfname, fname, strerror(errno) ); register_secured_file (fname); goto fail; } /* Now make sure the file has the same permissions as the original */ - #ifndef HAVE_DOSISH_SYSTEM { struct stat statbuf; |