From 44289e6728b293ff4f9be95eb0d6a381df008b5c Mon Sep 17 00:00:00 2001 From: Jack May Date: Wed, 7 Jul 2021 09:09:52 -0700 Subject: [PATCH] Update verify policy (#18459) --- runtime/src/message_processor.rs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/runtime/src/message_processor.rs b/runtime/src/message_processor.rs index 2c539a865f..2e66151ab1 100644 --- a/runtime/src/message_processor.rs +++ b/runtime/src/message_processor.rs @@ -180,7 +180,7 @@ impl PreAccount { } if !is_writable // line coverage used to get branch coverage || pre.executable() - || program_id != pre.owner() + || program_id != post.owner() { return Err(InstructionError::ExecutableModified); } @@ -1787,6 +1787,21 @@ mod tests { ); } + #[test] + fn test_verify_account_changes_owner_executable() { + let alice_program_id = solana_sdk::pubkey::new_rand(); + let bob_program_id = solana_sdk::pubkey::new_rand(); + + assert_eq!( + Change::new(&alice_program_id, &alice_program_id) + .owner(&bob_program_id) + .executable(false, true) + .verify(), + Err(InstructionError::ExecutableModified), + "Program should not be able to change owner and executable at the same time" + ); + } + #[test] fn test_process_message_readonly_handling() { #[derive(Serialize, Deserialize)]