diff --git a/src/script/interpreter.cpp b/src/script/interpreter.cpp index dcdddb88e96..a35306b6935 100644 --- a/src/script/interpreter.cpp +++ b/src/script/interpreter.cpp @@ -51,8 +51,8 @@ bool CastToBool(const valtype& vch) * Script is a stack machine (like Forth) that evaluates a predicate * returning a bool indicating valid or not. There are no loops. */ -#define stacktop(i) (stack.at(stack.size()+(i))) -#define altstacktop(i) (altstack.at(altstack.size()+(i))) +#define stacktop(i) (stack.at(size_t(int64_t(stack.size()) + int64_t{i}))) +#define altstacktop(i) (altstack.at(size_t(int64_t(altstack.size()) + int64_t{i}))) static inline void popstack(std::vector& stack) { if (stack.empty()) diff --git a/test/sanitizer_suppressions/ubsan b/test/sanitizer_suppressions/ubsan index 94bd14e6c3f..6e636b56b8e 100644 --- a/test/sanitizer_suppressions/ubsan +++ b/test/sanitizer_suppressions/ubsan @@ -55,7 +55,6 @@ unsigned-integer-overflow:MurmurHash3 unsigned-integer-overflow:CBlockPolicyEstimator::processBlockTx unsigned-integer-overflow:TxConfirmStats::EstimateMedianVal unsigned-integer-overflow:prevector.h -unsigned-integer-overflow:EvalScript unsigned-integer-overflow:InsecureRandomContext::rand64 unsigned-integer-overflow:InsecureRandomContext::SplitMix64 unsigned-integer-overflow:bitset_detail::PopCount