db_lmdb: guard against going out of sync on unexpected db results

m_num_outputs keeps track of the number of outputs, which should
be the same as the size of both the output_txs and output_amounts
databases. If one goes out of sync, we need to throw to abort
whatever it is we were doing.
This commit is contained in:
moneromooo-monero 2016-12-01 14:29:35 +00:00
parent bef51e677e
commit c96f9b0255
No known key found for this signature in database
GPG key ID: 686F07454D6CEFC3

View file

@ -910,7 +910,7 @@ void BlockchainLMDB::remove_output(const uint64_t amount, const uint64_t& out_in
result = mdb_cursor_get(m_cur_output_txs, (MDB_val *)&zerokval, &otxk, MDB_GET_BOTH);
if (result == MDB_NOTFOUND)
{
LOG_PRINT_L0("Unexpected: global output index not found in m_output_txs");
throw0(DB_ERROR("Unexpected: global output index not found in m_output_txs"));
}
else if (result)
{