From 157f09e5b64bd4ba8a579c4719cf504d68f4b925 Mon Sep 17 00:00:00 2001 From: Liang Ma Date: Thu, 28 Mar 2019 21:04:31 +0000 Subject: core/vm: Correct the Memory Gas Overflow condition previous overflow condition is too big to use. 0x7FFFFFFFF squre operation is overflowed uint64. 0x7FFFFFFFF^2 = 0x3F FFFF FFF0 0000 0001 --- core/vm/gas_table.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'core') diff --git a/core/vm/gas_table.go b/core/vm/gas_table.go index 6400c1324..8b034a0e7 100644 --- a/core/vm/gas_table.go +++ b/core/vm/gas_table.go @@ -32,11 +32,11 @@ func memoryGasCost(mem *Memory, newMemSize uint64) (uint64, error) { // The maximum that will fit in a uint64 is max_word_count - 1 // anything above that will result in an overflow. // Additionally, a newMemSize which results in a - // newMemSizeWords larger than 0x7ffffffff will cause the square operation + // newMemSizeWords larger than 0xFFFFFFFF will cause the square operation // to overflow. - // The constant 0xffffffffe0 is the highest number that can be used without + // The constant 0x1FFFFFFFE0 is the highest number that can be used without // overflowing the gas calculation - if newMemSize > 0xffffffffe0 { + if newMemSize > 0x1FFFFFFFE0 { return 0, errGasUintOverflow } -- cgit v1.2.3