wallet: don't forget to close the file after storing cache

Also add some flags to open, as epee's save_string_to_file does,
to truncate file, etc.
This commit is contained in:
moneromooo-monero 2015-12-31 10:34:17 +00:00
parent 91001aa446
commit 5c67c486e8
No known key found for this signature in database
GPG Key ID: 686F07454D6CEFC3

View File

@ -1288,9 +1288,11 @@ void wallet2::store()
const std::string old_file = m_wallet_file + ".old"; const std::string old_file = m_wallet_file + ".old";
// save to new file // save to new file
std::ofstream ostr(new_file); std::ofstream ostr;
ostr.open(new_file, std::ios_base::binary | std::ios_base::out | std::ios_base::trunc);
binary_archive<true> oar(ostr); binary_archive<true> oar(ostr);
bool success = ::serialization::serialize(oar, cache_file_data); bool success = ::serialization::serialize(oar, cache_file_data);
ostr.close();
THROW_WALLET_EXCEPTION_IF(!success || !ostr.good(), error::file_save_error, new_file); THROW_WALLET_EXCEPTION_IF(!success || !ostr.good(), error::file_save_error, new_file);
// rename // rename