diff --git a/programs/bpf_loader/src/lib.rs b/programs/bpf_loader/src/lib.rs index 53890e3619..f0d453f38a 100644 --- a/programs/bpf_loader/src/lib.rs +++ b/programs/bpf_loader/src/lib.rs @@ -45,7 +45,7 @@ use { cap_accounts_data_len, disable_bpf_deprecated_load_instructions, disable_bpf_unresolved_symbols_at_runtime, disable_deprecated_loader, do_support_realloc, error_on_syscall_bpf_function_hash_collisions, - reduce_required_deploy_balance, requestable_heap_size, + reduce_required_deploy_balance, reject_callx_r10, requestable_heap_size, }, instruction::{AccountMeta, InstructionError}, keyed_account::keyed_account_at_index, @@ -146,7 +146,9 @@ pub fn create_executor( syscall_bpf_function_hash_collision: invoke_context .feature_set .is_active(&error_on_syscall_bpf_function_hash_collisions::id()), - reject_callx_r10: false, + reject_callx_r10: invoke_context + .feature_set + .is_active(&reject_callx_r10::id()), // Warning, do not use `Config::default()` so that configuration here is explicit. }; let mut create_executor_metrics = executor_metrics::CreateMetrics::default(); diff --git a/sdk/src/feature_set.rs b/sdk/src/feature_set.rs index c51a1d2825..570e0dda9c 100644 --- a/sdk/src/feature_set.rs +++ b/sdk/src/feature_set.rs @@ -335,6 +335,10 @@ pub mod error_on_syscall_bpf_function_hash_collisions { solana_sdk::declare_id!("8199Q2gMD2kwgfopK5qqVWuDbegLgpuFUFHCcUJQDN8b"); } +pub mod reject_callx_r10 { + solana_sdk::declare_id!("3NKRSwpySNwD3TvP5pHnRmkAQRsdkXWRr1WaQh8p4PWX"); +} + lazy_static! { /// Map of feature identifiers to user-visible description pub static ref FEATURE_NAMES: HashMap = [ @@ -413,6 +417,7 @@ lazy_static! { (stake_split_uses_rent_sysvar::id(), "stake split instruction uses rent sysvar"), (add_get_minimum_delegation_instruction_to_stake_program::id(), "add GetMinimumDelegation instruction to stake program"), (error_on_syscall_bpf_function_hash_collisions::id(), "error on bpf function hash collisions"), + (reject_callx_r10::id(), "Reject bpf callx r10 instructions"), /*************** ADD NEW FEATURES HERE ***************/ ] .iter()