diff --git a/programs/bpf_loader/src/syscalls.rs b/programs/bpf_loader/src/syscalls.rs index 8745692cd3..60bfa68266 100644 --- a/programs/bpf_loader/src/syscalls.rs +++ b/programs/bpf_loader/src/syscalls.rs @@ -1367,8 +1367,7 @@ fn call<'a>( memory_mapping, )?; 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( @@ -1378,6 +1377,8 @@ fn call<'a>( memory_mapping, )?; + invoke_context.record_instruction(&instruction); + // Process instruction let program_account = (*accounts[callee_program_id_index]).clone();