diff options
author | Alex Morcos <morcos@chaincode.com> | 2016-11-07 15:30:41 -0500 |
---|---|---|
committer | Alex Morcos <morcos@chaincode.com> | 2017-01-04 11:20:42 -0500 |
commit | b50cd7a67e71051db59199a4185e7c82b669c659 (patch) | |
tree | 9708654395f01d61688c9b979325c0a088029c02 /src/validation.cpp | |
parent | caa2f106d704ec3ade63498031dd58d34510bc76 (diff) |
Fix dangerous condition in ModifyNewCoins.
We were marking coins FRESH before being sure they were not overwriting dirty undo data. This condition was never reached in existing code because undo data was always flushed before UpdateCoins was called with new transactions, but could have been exposed in an otherwise safe refactor.
Clarify in the comments the assumptions made in ModifyNewCoins.
Add ability to undo transactions to UpdateCoins unit test.
Thanks to Russ Yanofsky for suggestion on how to make logic clearer and fixing up the ccoins_modify_new test cases.
Diffstat (limited to 'src/validation.cpp')
-rw-r--r-- | src/validation.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/validation.cpp b/src/validation.cpp index bd60bbfdcd..744c228bb7 100644 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -1498,7 +1498,7 @@ bool AbortNode(CValidationState& state, const std::string& strMessage, const std * @param out The out point that corresponds to the tx input. * @return True on success. */ -static bool ApplyTxInUndo(const CTxInUndo& undo, CCoinsViewCache& view, const COutPoint& out) +bool ApplyTxInUndo(const CTxInUndo& undo, CCoinsViewCache& view, const COutPoint& out) { bool fClean = true; |