diff options
author | Mikhail Mitkevichl <mim@exante.eu> | 2018-04-21 23:25:01 +0300 |
---|---|---|
committer | Mikhail Mitkevichl <mim@exante.eu> | 2018-04-21 23:25:01 +0300 |
commit | 5bd7f760e9318452f662bcbdb1b8ab7d393055d2 (patch) | |
tree | 39814b52f1b6a47bcdf6cc7a3d3ddad55b7b5cd5 /src/wallet/wallet2.cpp | |
parent | Merge pull request #3606 (diff) | |
download | monero-5bd7f760e9318452f662bcbdb1b8ab7d393055d2.tar.xz |
import_multisig_info: fix sanity check crash in detach_blockchain
Diffstat (limited to 'src/wallet/wallet2.cpp')
-rw-r--r-- | src/wallet/wallet2.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp index 3883de6d9..bbd3108d3 100644 --- a/src/wallet/wallet2.cpp +++ b/src/wallet/wallet2.cpp @@ -2421,7 +2421,7 @@ void wallet2::detach_blockchain(uint64_t height) // size 1 2 3 4 5 6 7 8 9 // block 0 1 2 3 4 5 6 7 8 // C - THROW_WALLET_EXCEPTION_IF(height <= m_checkpoints.get_max_height() && m_blockchain.size() > m_checkpoints.get_max_height(), + THROW_WALLET_EXCEPTION_IF(height < m_blockchain.offset() && m_blockchain.size() > m_blockchain.offset(), error::wallet_internal_error, "Daemon claims reorg below last checkpoint"); size_t transfers_detached = 0; @@ -3875,6 +3875,11 @@ void wallet2::load(const std::string& wallet_, const epee::wipeable_string& pass void wallet2::trim_hashchain() { uint64_t height = m_checkpoints.get_max_height(); + + for (const transfer_details &td: m_transfers) + if (td.m_block_height < height) + height = td.m_block_height; + if (!m_blockchain.empty() && m_blockchain.size() == m_blockchain.offset()) { MINFO("Fixing empty hashchain"); |