Fix crashing bug caused by orphan(s) with duplicate prevout.hash

This commit is contained in:
Gavin Andresen 2014-09-09 14:01:11 -04:00 committed by Wladimir J. van der Laan
parent d6af9856b0
commit def2fdb4b9
No known key found for this signature in database
GPG Key ID: 74810B012346C9A6

View File

@ -498,6 +498,8 @@ void static EraseOrphanTx(uint256 hash)
BOOST_FOREACH(const CTxIn& txin, it->second.vin) BOOST_FOREACH(const CTxIn& txin, it->second.vin)
{ {
map<uint256, set<uint256> >::iterator itPrev = mapOrphanTransactionsByPrev.find(txin.prevout.hash); map<uint256, set<uint256> >::iterator itPrev = mapOrphanTransactionsByPrev.find(txin.prevout.hash);
if (itPrev == mapOrphanTransactionsByPrev.end())
continue;
itPrev->second.erase(hash); itPrev->second.erase(hash);
if (itPrev->second.empty()) if (itPrev->second.empty())
mapOrphanTransactionsByPrev.erase(itPrev); mapOrphanTransactionsByPrev.erase(itPrev);