From 720faa673d52f4d89eb5f97de92e552a1bfc546a Mon Sep 17 00:00:00 2001 From: wborgeaud Date: Fri, 2 Jun 2023 19:57:46 +0200 Subject: [PATCH] Fix create OOG because of code deposit cost (#1062) * Fix create OOG because of code deposit cost * Set returndata size to 0 in case of oog --- evm/src/cpu/kernel/asm/core/create.asm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/evm/src/cpu/kernel/asm/core/create.asm b/evm/src/cpu/kernel/asm/core/create.asm index 9ecc2600..25dd83da 100644 --- a/evm/src/cpu/kernel/asm/core/create.asm +++ b/evm/src/cpu/kernel/asm/core/create.asm @@ -150,7 +150,7 @@ after_constructor: // stack: code_size, leftover_gas, success, address, kexit_info %mul_const(@GAS_CODEDEPOSIT) // stack: code_size_cost, leftover_gas, success, address, kexit_info - DUP2 DUP2 GT %jumpi(fault_exception) + DUP2 DUP2 GT %jumpi(create_oog) SWAP1 SUB // stack: leftover_gas, success, address, kexit_info %pop_checkpoint @@ -213,6 +213,12 @@ create_code_too_large: %stack (code_size, leftover_gas, success, address, kexit_info) -> (kexit_info, 0) EXIT_KERNEL +create_oog: + %revert_checkpoint + %mstore_context_metadata(@CTX_METADATA_RETURNDATA_SIZE, 0) + %stack (code_size_cost, leftover_gas, success, address, kexit_info) -> (kexit_info, 0) + EXIT_KERNEL + %macro set_codehash %stack (addr, codehash) -> (addr, codehash, %%after) %jump(set_codehash)