We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent bd2052b commit fcfbac4Copy full SHA for fcfbac4
test/state/block.cpp
@@ -18,10 +18,16 @@ intx::uint256 compute_blob_gas_price(uint64_t excess_blob_gas) noexcept
18
intx::uint256 i = 1;
19
intx::uint256 output = 0;
20
intx::uint256 numerator_accum = factor * denominator;
21
+ const intx::uint256 numerator256 = numerator;
22
while (numerator_accum > 0)
23
{
24
output += numerator_accum;
- numerator_accum = (numerator_accum * numerator) / (denominator * i);
25
+ // Ensure the multiplication won't overflow 256 bits.
26
+ if (const auto p = intx::umul(numerator_accum, numerator256);
27
+ p <= std::numeric_limits<intx::uint256>::max())
28
+ numerator_accum = intx::uint256(p) / (denominator * i);
29
+ else
30
+ return std::numeric_limits<intx::uint256>::max();
31
i += 1;
32
}
33
return output / denominator;
0 commit comments