Skip to content

Commit

Permalink
Add overflow checks for addition of AccessList cost in IntrinsicGas
Browse files Browse the repository at this point in the history
  • Loading branch information
Kourin1996 committed Dec 4, 2024
1 parent 8736c4f commit 8ef9e9c
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions core/state_transition.go
Original file line number Diff line number Diff line change
Expand Up @@ -141,8 +141,17 @@ func IntrinsicGas(data []byte, accessList types.AccessList, isContractCreation,
}

if accessList != nil {
gas += uint64(len(accessList)) * params.TxAccessListAddressGas
gas += uint64(accessList.StorageKeys()) * params.TxAccessListStorageKeyGas
numItems := uint64(len(accessList))
if (math.MaxUint64-gas)/params.TxAccessListAddressGas < numItems {
return 0, ErrGasUintOverflow
}
gas += numItems * params.TxAccessListAddressGas

numStorageKeys := uint64(accessList.StorageKeys())
if (math.MaxUint64-gas)/params.TxAccessListStorageKeyGas < numStorageKeys {
return 0, ErrGasUintOverflow
}
gas += numStorageKeys * params.TxAccessListStorageKeyGas
}
return gas, nil
}
Expand Down

0 comments on commit 8ef9e9c

Please sign in to comment.