fix for block 74638 overflow output transaction

This commit is contained in:
Satoshi Nakamoto
2010-08-15 23:09:29 +00:00
committed by Gavin Andresen
parent 6ac7f9f144
commit 76793dc969
3 changed files with 19 additions and 2 deletions

View File

@@ -1006,6 +1006,14 @@ bool CTransaction::ConnectInputs(CTxDB& txdb, map<uint256, CTxIndex>& mapTestPoo
mapTestPool[prevout.hash] = txindex;
nValueIn += txPrev.vout[prevout.n].nValue;
// Check for negative or overflow input values
if (txPrev.vout[prevout.n].nValue < 0)
return error("ConnectInputs() : txin.nValue negative");
if (txPrev.vout[prevout.n].nValue > MAX_MONEY)
return error("ConnectInputs() : txin.nValue too high");
if (nValueIn > MAX_MONEY)
return error("ConnectInputs() : txin total too high");
}
// Tally transaction fees