diff options
author | Tomas van der Wansem <tomas@tomasvdw.nl> | 2017-09-21 00:10:46 +0200 |
---|---|---|
committer | Tomas van der Wansem <tomas@tomasvdw.nl> | 2017-10-10 14:49:47 +0200 |
commit | 5d465e396249a0e2cc60b16984a2bdbe4c8993c3 (patch) | |
tree | a30633f6035bf19b5d1ceca21f014a2868c45188 /src/wallet/db.cpp | |
parent | 5a9da37fb3f4b53f556e1d46509b94dc3c661d75 (diff) |
Ensure backupwallet fails when attempting to backup to source file
Previous behaviour was to destroy the wallet (to zero-length)
Diffstat (limited to 'src/wallet/db.cpp')
-rw-r--r-- | src/wallet/db.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/wallet/db.cpp b/src/wallet/db.cpp index d66ba48421..d49cd82340 100644 --- a/src/wallet/db.cpp +++ b/src/wallet/db.cpp @@ -672,6 +672,11 @@ bool CWalletDBWrapper::Backup(const std::string& strDest) pathDest /= strFile; try { + if (fs::equivalent(pathSrc, pathDest)) { + LogPrintf("cannot backup to wallet source file %s\n", pathDest.string()); + return false; + } + fs::copy_file(pathSrc, pathDest, fs::copy_option::overwrite_if_exists); LogPrintf("copied %s to %s\n", strFile, pathDest.string()); return true; |