diff options
author | MarcoFalke <falke.marco@gmail.com> | 2022-01-28 17:36:44 +0100 |
---|---|---|
committer | MarcoFalke <falke.marco@gmail.com> | 2022-02-07 15:20:36 +0100 |
commit | fac62056b56e0a28baf0b6f285752d83fbf96074 (patch) | |
tree | d80e4f4faf748ae9263726973d1575e5f5f42ef7 | |
parent | f7a36477a61b3719859ee4bb0795821c2aa6bd16 (diff) |
Fix integer sanitizer suppressions in validation.cpp
-rw-r--r-- | src/validation.cpp | 5 | ||||
-rw-r--r-- | test/sanitizer_suppressions/ubsan | 1 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/validation.cpp b/src/validation.cpp index f2fa1cf8d5..e20e2fe523 100644 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -1787,8 +1787,9 @@ DisconnectResult CChainState::DisconnectBlock(const CBlock& block, const CBlockI error("DisconnectBlock(): transaction and undo data inconsistent"); return DISCONNECT_FAILED; } - for (unsigned int j = tx.vin.size(); j-- > 0;) { - const COutPoint &out = tx.vin[j].prevout; + for (unsigned int j = tx.vin.size(); j > 0;) { + --j; + const COutPoint& out = tx.vin[j].prevout; int res = ApplyTxInUndo(std::move(txundo.vprevout[j]), view, out); if (res == DISCONNECT_FAILED) return DISCONNECT_FAILED; fClean = fClean && res != DISCONNECT_UNCLEAN; diff --git a/test/sanitizer_suppressions/ubsan b/test/sanitizer_suppressions/ubsan index 46f36f282f..025bfc1ac0 100644 --- a/test/sanitizer_suppressions/ubsan +++ b/test/sanitizer_suppressions/ubsan @@ -57,7 +57,6 @@ unsigned-integer-overflow:pubkey.h unsigned-integer-overflow:script/interpreter.cpp unsigned-integer-overflow:txmempool.cpp unsigned-integer-overflow:util/strencodings.cpp -unsigned-integer-overflow:validation.cpp implicit-integer-sign-change:addrman.h implicit-integer-sign-change:bech32.cpp implicit-integer-sign-change:compat/stdin.cpp |