diff --git a/programs/bpf_loader/src/syscalls.rs b/programs/bpf_loader/src/syscalls.rs index 2a4006ddd9..21aa97f3fb 100644 --- a/programs/bpf_loader/src/syscalls.rs +++ b/programs/bpf_loader/src/syscalls.rs @@ -1188,8 +1188,7 @@ fn call<'a>( ro_regions, )?; verify_instruction(syscall, &instruction, &signers)?; - invoke_context.record_instruction(&instruction); - let message = Message::new(&[instruction], None); + let message = Message::new(&[instruction.clone()], None); let callee_program_id_index = message.instructions[0].program_id_index as usize; let callee_program_id = message.account_keys[callee_program_id_index]; let (accounts, account_refs) = syscall.translate_accounts( @@ -1200,6 +1199,8 @@ fn call<'a>( rw_regions, )?; + invoke_context.record_instruction(&instruction); + // Process instruction let program_account = (*accounts[callee_program_id_index]).clone();