From 475b2ba0cbdd84952f6d3c75102c1cd6574daa9c Mon Sep 17 00:00:00 2001 From: wborgeaud Date: Wed, 12 Apr 2023 16:41:36 +0200 Subject: [PATCH] Fix copy_returndata_to_mem (#976) --- evm/src/cpu/kernel/asm/core/call.asm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/evm/src/cpu/kernel/asm/core/call.asm b/evm/src/cpu/kernel/asm/core/call.asm index dcebb231..51827d3d 100644 --- a/evm/src/cpu/kernel/asm/core/call.asm +++ b/evm/src/cpu/kernel/asm/core/call.asm @@ -297,12 +297,16 @@ global after_call_instruction: %macro copy_returndata_to_mem // stack: kexit_info, new_ctx, success, ret_offset, ret_size + SWAP4 + %returndatasize + // stack: returndata_size, ret_size, new_ctx, success, ret_offset, kexit_info + %min GET_CONTEXT - %stack (ctx, kexit_info, new_ctx, success, ret_offset, ret_size) -> + %stack (ctx, n, new_ctx, success, ret_offset, kexit_info) -> ( ctx, @SEGMENT_MAIN_MEMORY, ret_offset, // DST ctx, @SEGMENT_RETURNDATA, 0, // SRC - ret_size, %%after, // count, retdest + n, %%after, // count, retdest kexit_info, success ) %jump(memcpy)