mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-10 20:03:34 -03:00
refactor: Block unsafe std::string fs::path conversion copy_file calls
There is no change in behavior. This just helps prepare for the transition from boost::filesystem to std::filesystem by avoiding copy_file calls that will be unsafe after the transition to std::filesystem to due lack of a boost::filesystem::path::imbue equivalent and inability to set a predictable locale.
This commit is contained in:
parent
3d0850cec1
commit
213172c734
2 changed files with 8 additions and 1 deletions
7
src/fs.h
7
src/fs.h
|
@ -92,6 +92,13 @@ static inline path operator+(path p1, path p2)
|
|||
return p1;
|
||||
}
|
||||
|
||||
// Disallow implicit std::string conversion for copy_file
|
||||
// to avoid locale-dependent encoding on Windows.
|
||||
static inline void copy_file(const path& from, const path& to, copy_option options)
|
||||
{
|
||||
boost::filesystem::copy_file(from, to, options);
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert path object to byte string. On POSIX, paths natively are byte
|
||||
* strings, so this is trivial. On Windows, paths natively are Unicode, so an
|
||||
|
|
|
@ -377,7 +377,7 @@ std::shared_ptr<CWallet> RestoreWallet(WalletContext& context, const std::string
|
|||
}
|
||||
|
||||
auto wallet_file = wallet_path / "wallet.dat";
|
||||
fs::copy_file(backup_file, wallet_file, fs::copy_option::fail_if_exists);
|
||||
fs::copy_file(fs::u8path(backup_file), wallet_file, fs::copy_option::fail_if_exists);
|
||||
|
||||
auto wallet = LoadWallet(context, wallet_name, load_on_start, options, status, error, warnings);
|
||||
|
||||
|
|
Loading…
Reference in a new issue