From 608572eeadbcee465313f024c5604c52379c9cc9 Mon Sep 17 00:00:00 2001 From: Oran Juice Date: Tue, 23 Sep 2014 20:48:15 +0530 Subject: Check for error after opening word list file --- src/mnemonics/electrum-words.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/mnemonics/electrum-words.cpp b/src/mnemonics/electrum-words.cpp index 250e37577..8ab618b16 100644 --- a/src/mnemonics/electrum-words.cpp +++ b/src/mnemonics/electrum-words.cpp @@ -41,16 +41,17 @@ #include "crypto/crypto.h" // for declaration of crypto::secret_key #include #include "mnemonics/electrum-words.h" - +#include namespace { int num_words = 0; std::map words_map; - vector words_array; + std::vector words_array; const std::string OLD_WORD_FILE = "old-word-list"; const std::string WORD_LIST_DIRECTORY = "wordlists"; + bool is_first_use() { return num_words == 0 ? true : false; @@ -58,12 +59,16 @@ namespace void create_data_structures(const std::string &word_file) { - ifstream input_stream; - input_stream.open(word_file, std::ifstream::in); + std::ifstream input_stream; + input_stream.open(word_file.c_str(), std::ifstream::in); + + if (!input_stream) + throw std::runtime_error(std::string("Word list file couldn't be opened.")); + std::string word; while (input_stream >> word) { - words_array.push(word); + words_array.push_back(word); words_map[word] = num_words; num_words++; } @@ -154,7 +159,7 @@ namespace crypto { if (is_first_use()) { - init(); + init("", true); } int n = num_words; -- cgit v1.2.3