use load_file_to_string and exit with error on file read errors

This commit is contained in:
Fabian Hirschmann 2016-01-09 19:11:34 +01:00
parent 7b2d27f89a
commit c5baf30208

View File

@ -808,9 +808,15 @@ bool simple_wallet::init(const boost::program_options::variables_map& vm)
} }
else if (command_line::has_arg(vm, arg_password_file)) else if (command_line::has_arg(vm, arg_password_file))
{ {
std::ifstream pfs(command_line::get_arg(vm, arg_password_file)); std::string password;
std::string password((std::istreambuf_iterator<char>(pfs)), bool r = epee::file_io_utils::load_file_to_string(command_line::get_arg(vm, arg_password_file),
(std::istreambuf_iterator<char>())); password);
if (!r)
{
fail_msg_writer() << tr("the password file specified could not be read");
return false;
}
// Remove line breaks the user might have inserted // Remove line breaks the user might have inserted
password.erase(std::remove(password.begin() - 1, password.end(), '\n'), password.end()); password.erase(std::remove(password.begin() - 1, password.end(), '\n'), password.end());
password.erase(std::remove(password.end() - 1, password.end(), '\r'), password.end()); password.erase(std::remove(password.end() - 1, password.end(), '\r'), password.end());