diff --git a/src/cryptonote_core/master_node_list.cpp b/src/cryptonote_core/master_node_list.cpp index b6e90a1c8fd..9bef9c2907a 100755 --- a/src/cryptonote_core/master_node_list.cpp +++ b/src/cryptonote_core/master_node_list.cpp @@ -876,6 +876,8 @@ namespace master_nodes master_node_info master_node_list::state_t::get_master_node_details(crypto::public_key mnode_key) { auto it = master_nodes_infos.find(mnode_key); + if (it == master_nodes_infos.end()) + throw std::invalid_argument("get_master_node_details: master node not found"); return *it->second; } diff --git a/src/cryptonote_core/tx_pool.cpp b/src/cryptonote_core/tx_pool.cpp index 28d4170a12f..b29b865b2e7 100755 --- a/src/cryptonote_core/tx_pool.cpp +++ b/src/cryptonote_core/tx_pool.cpp @@ -274,6 +274,8 @@ namespace cryptonote return false; uint64_t block_height = m_blockchain.get_current_blockchain_height(); + if (!m_blockchain.get_master_node_list().is_master_node(mnode_key)) + return false; const master_nodes::master_node_info &node_info = m_blockchain.get_master_node_list().get_master_node_details(mnode_key); for (const auto &contributor : node_info.contributors)