From 9d53eca6e36517cc9a8a2691e344dc528595f6b2 Mon Sep 17 00:00:00 2001 From: Jack May Date: Fri, 8 Jan 2021 14:43:24 -0800 Subject: [PATCH] Report correct program id (#14486) --- programs/bpf_loader/src/lib.rs | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/programs/bpf_loader/src/lib.rs b/programs/bpf_loader/src/lib.rs index 28a57b88d..3bd8604f3 100644 --- a/programs/bpf_loader/src/lib.rs +++ b/programs/bpf_loader/src/lib.rs @@ -253,10 +253,10 @@ fn process_instruction_common( return Err(InstructionError::IncorrectProgramId); } - let executor = match invoke_context.get_executor(program.unsigned_key()) { + let executor = match invoke_context.get_executor(program_id) { Some(executor) => executor, None => create_and_cache_executor( - program.unsigned_key(), + program_id, &program.try_account_ref()?.data[offset..], invoke_context, use_jit, @@ -264,7 +264,7 @@ fn process_instruction_common( }; executor.execute( loader_id, - first_account.unsigned_key(), + program_id, keyed_accounts, instruction_data, invoke_context, @@ -425,7 +425,7 @@ fn process_loader_upgradeable_instruction( // Load and verify the program bits let _ = create_and_cache_executor( - programdata.unsigned_key(), + program_id, &buffer.try_account_ref()?.data[buffer_data_offset..], invoke_context, use_jit, @@ -538,7 +538,7 @@ fn process_loader_upgradeable_instruction( // Load and verify the program bits let _ = create_and_cache_executor( - programdata.unsigned_key(), + program.unsigned_key(), &buffer.try_account_ref()?.data[buffer_data_offset..], invoke_context, use_jit, @@ -723,8 +723,7 @@ impl Executor for BPFExecutor { let invoke_depth = invoke_context.invoke_depth(); let mut keyed_accounts_iter = keyed_accounts.iter(); - let program = next_keyed_account(&mut keyed_accounts_iter)?; - + let _ = next_keyed_account(&mut keyed_accounts_iter)?; let parameter_accounts = keyed_accounts_iter.as_slice(); let mut parameter_bytes = serialize_parameters(loader_id, program_id, parameter_accounts, &instruction_data)?; @@ -744,7 +743,7 @@ impl Executor for BPFExecutor { } }; - stable_log::program_invoke(&logger, program.unsigned_key(), invoke_depth); + stable_log::program_invoke(&logger, program_id, invoke_depth); let mut instruction_meter = ThisInstructionMeter::new(compute_meter.clone()); let before = compute_meter.borrow().get_remaining(); let result = if use_jit { @@ -756,7 +755,7 @@ impl Executor for BPFExecutor { log!( logger, "Program {} consumed {} of {} compute units", - program.unsigned_key(), + program_id, before - after, before ); @@ -764,17 +763,12 @@ impl Executor for BPFExecutor { Ok(status) => { if status != SUCCESS { let error: InstructionError = status.into(); - stable_log::program_failure(&logger, program.unsigned_key(), &error); + stable_log::program_failure(&logger, program_id, &error); return Err(error); } } Err(error) => { - log!( - logger, - "Program {} BPF VM error: {}", - program.unsigned_key(), - error - ); + log!(logger, "Program {} BPF VM error: {}", program_id, error); let error = match error { EbpfError::UserError(BPFError::SyscallError( SyscallError::InstructionError(error), @@ -785,13 +779,13 @@ impl Executor for BPFExecutor { } }; - stable_log::program_failure(&logger, program.unsigned_key(), &error); + stable_log::program_failure(&logger, program_id, &error); return Err(error); } } } deserialize_parameters(loader_id, parameter_accounts, ¶meter_bytes)?; - stable_log::program_success(&logger, program.unsigned_key()); + stable_log::program_success(&logger, program_id); Ok(()) } }