diff options
author | Werner Koch <wk@gnupg.org> | 1998-08-07 10:53:38 +0200 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 1998-08-07 10:53:38 +0200 |
commit | 6d21f2838dcfee933f4c430fba68ba8ada3abd50 (patch) | |
tree | ecf44aec40a55d3fd46fc6a6d96bb3afa7901029 /g10/ringedit.c | |
parent | add salted and iterated mode (diff) | |
download | gnupg2-6d21f2838dcfee933f4c430fba68ba8ada3abd50.tar.xz gnupg2-6d21f2838dcfee933f4c430fba68ba8ada3abd50.zip |
chnages done at the train
Diffstat (limited to 'g10/ringedit.c')
-rw-r--r-- | g10/ringedit.c | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/g10/ringedit.c b/g10/ringedit.c index 58eb6d6d9..6f505ef2a 100644 --- a/g10/ringedit.c +++ b/g10/ringedit.c @@ -55,6 +55,7 @@ #include "mpi.h" #include "iobuf.h" #include "keydb.h" +#include "i18n.h" #include <unistd.h> /* for truncate */ @@ -865,14 +866,16 @@ keyring_copy( KBPOS *kbpos, int mode, KBNODE root ) } } /* rename and make backup file */ - #if __MINGW32__ - remove( bakfname ); - #endif - if( rename( rentry->fname, bakfname ) ) { - log_error("%s: rename to %s failed: %s\n", - rentry->fname, bakfname, strerror(errno) ); - rc = G10ERR_RENAME_FILE; - goto leave; + if( !rentry->secret ) { /* but not for secret keyrings */ + #if __MINGW32__ + remove( bakfname ); + #endif + if( rename( rentry->fname, bakfname ) ) { + log_error("%s: rename to %s failed: %s\n", + rentry->fname, bakfname, strerror(errno) ); + rc = G10ERR_RENAME_FILE; + goto leave; + } } #if __MINGW32__ remove( rentry->fname ); @@ -881,6 +884,13 @@ keyring_copy( KBPOS *kbpos, int mode, KBNODE root ) log_error("%s: rename to %s failed: %s\n", tmpfname, rentry->fname,strerror(errno) ); rc = G10ERR_RENAME_FILE; + if( rentry->secret ) { + log_info(_( + "Warning: 2 files with confidential information exists.\n")); + log_info(_("%s is the unchanged one\n"), rentry->fname ); + log_info(_("%s is the new one\n"), tmpfname ); + log_info(_("Please fix this possible security flaw\n")); + } goto leave; } |