From bc9a71e7ab234826875824556c3dd450c5b4b436 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Bylica?= Date: Mon, 11 Dec 2017 15:17:16 +0100 Subject: [PATCH] evmjit: Correctly release result --- core/vm/evmjit.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/vm/evmjit.go b/core/vm/evmjit.go index dbd9da8f71..e61117bee6 100644 --- a/core/vm/evmjit.go +++ b/core/vm/evmjit.go @@ -80,7 +80,7 @@ import ( "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/common" - // "github.com/ethereum/go-ethereum/crypto" + "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/params" ) @@ -457,6 +457,7 @@ func (evm *EVMJIT) Run(contract *Contract, input []byte) (ret []byte, err error) msg.input_size = C.size_t(len(input)) msg.gas = gas msg.depth = C.int32_t(evm.env.depth - 1) + msg.code_hash = HashToEvmc(crypto.Keccak256Hash(code)) r := C.evm_execute(evm.jit, &wrapper.c, rev, &msg, codePtr, codeSize) @@ -475,6 +476,9 @@ func (evm *EVMJIT) Run(contract *Contract, input []byte) (ret []byte, err error) err = ErrOutOfGas } - C.evm_release_result(&r) + if r.release != nil { + C.evm_release_result(&r) + } + return output, err }